분류 전체보기
[백준] 2504 괄호의 값 파이썬
문제 https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 풀이 스택으로 구현했다. 조건을 되는대로 추가하다보니 좀 길어졌다. 1. ( 나 [ 가 입력되면 스택에 추가한다. 2. ) 나 ] 가 입력되었을 때 스택이 비어있지 않다면 하나를 팝한다. 2-1 팝한 값이 ( 나 [ 로 짝이 맞다면 숫자로 변환해 스택에 추가한다. 2-2 팝한 값이 숫자라면 하나를 더 팝해서 짝이 맞는지 확인하고 숫자를 곱해 스택에 추가한다. 짝이 2-3 그 밖의 값이 있다..
[백준] 14888 연산자 끼워넣기 파이썬
문제 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 풀이 permutations으로 연산자 조합을 모두 만들고 set으로 중복을 제거했다. 파이썬과 c++14의 음수 나누기 방식이 달라 몇 번 틀렸었다. (-1) // 3 의 경우 c++14는 0, 파이썬은 -1을 반환한다. 파이썬은 내림이라는 수학적 정의에 따라 설계했다고 함.. 파이썬으로 풀려면 양수로 바꾸고 몫을 취한 다음 다시 음수..
[HTTP] HTTP 메서드 활용
클라이언트에서 서버로 데이터 전송 데이터 전달 방식 기준 1. 쿼리 파라미터 활용(조회) - GET 2. 메시지 바디 활용(가입, 추가, 변경) - POST, PUT, PATCH 데이터 전송 상황 1. 정적 데이터 조회 쿼리 파라미터 미사용, 단순 경로로 조회 ex) GET /static/star.jpg HTTP/1.1 2. 동적 데이터 조회 검색, 정렬, 필터 조회이므로 역시 GET 사용 필요한 파라미터를 쿼리로 전달 ex) GET /search?q=hello&hl=ko HTTP/1.1 3. HTML Form GET/POST만 지원, 이외의 메소드는 지원하지 않는다. html form 에 있는 데이터를 웹 브라우저가 GET/POST 메서드로 만들어 서버에 전달 단순 form일 때 Content-Type..
[HTTP] HTTP 메서드
HTTP API를 만들어보자 아래와 같은 기능이 필요할 때 API URI를 설계해보자. - 회원 목록 조회 - 회원 조회 - 회원 등록 - 회원 삭제 /read-memeber-list /create-member 등은 좋지 않은 설계이다. API는 리소스 식별이 기준이 되어야 한다. 회원이라는 개념 자체가 리소스이다. /members 와 같이 리소스만을 기준으로 설계하자. 조회/등록/삭제 등의 동작은 http 메서드를 통해 구분하자. HTTP 메서드 - GET, POST GET, POST가 http에서 가장 주요한 메서드이다. GET - 리소스 조회 시 사용 - 전달할 데이터는 쿼리파라미터를 통함 - 메시지 바디 사용은 권장하지 않음 POST - 데이터 처리를 요청 - 메시지 바디를 통해 서버로 데이터 전..
[HTTP] http 기본
모든 것이 HTTP 대부분의 웹개발에서 http를 기본으로 사용한다. HTTP는 Hyper Text Transfer Protocol의 줄임말이지만, 현재 텍스트 이외에 이미지, JSON 등 거의 모든 형태의 데이터도 전송할 수 있다. 직접 TCP 연결을 맺어 통신하기보다 서버간에서도 HTTP로 통신하는 것이 대부분이다. HTTP는 1.1버전이 가장 중요하다. 현재 HTTP2와 HTTP3 버전이 나왔지만 성능 개선의 정도이며 주요 기능은 1.1버전에서 추가되었다. 최근 1.1버전은 RFC7230~7235이므로 자료를 찾을 때 주의하자 HTTP는 1.1과 2에서는 TCP 프로토콜을 사용하나, 3버전부터는 성능 개선을 위해 UDP로 변경되었다. HTTP는 클라이언트-서버 구조로, stateless와 비연결성을..
[프로그래머스] 2020 카카오 블라인드 - 기둥과 보 설치 파이썬
문제 https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 풀이 설치조건은 직접 작성하고 삭제의 경우 해당 아이템을 삭제하고 해당 아이템..
[백준] 14891 톱니바퀴 파이썬
문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 풀이 구현문제였다. 큰 어려움 없이 풀었다. deque에 rotate 함수가 있어 구현이 쉬웠다. +1을 인자로 넣으면 시계방향, -1을 넣으면 반시계방향으로 회전된다. from collections import deque import sys gears = [deque(list(map(int, sys.stdin.readline().strip()))) for _ in range(4)] ge..
[백준] 1918 후위표기식 파이썬
문제 https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 풀이 처음에 if l == '+' or l=='-' 안의 와일문 조건에서 stack[-1] != '(' 대신 stack[-1] != '+' or stack[-1] != '-' 으로 조건문을 작성했다가 틀렸다. 같은 우선순위인 +-를 출력해주려다가 그 윗순위인 */를 빼먹었기 때문.. line = input() stack = [] for l in line: if 'A'