목록전체 글 (188)
alpyrithm_알파이리즘
API 정의 Application Programming Interface - 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 ▼ 이전 글 참고하기 2020/06/19 - [SM공부] - API 공부 및 정리! RESTful API - 정의 REpresentational State Transfer 클라이언트(웹브라우저, 모바일)가 필요한 자원이 있을 때, 서버에게 요청하는 방식을 정의한 API 디자인 API 설계의 중심에 자원(resource)이 있고 HTTP Method를 통해 자원을 처리하도록 설계하는 방식 자원(Resource - URI), 행위(Verb - HTTP METHOD), 표현(Representations)으로 구성 - 장점 ..
HTTP(하이퍼텍스트 전송 프로토콜, HyperText Transfer Protocol) - 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. - 클라이언트(브라우저 - 웹 관점)와 서버 사이에 이루어지는 요청(Request)/응답(Response) 프로토콜이다. - 무상태 프로토콜로 트랜젝션(독집적인 요청-응답) 발생 후 연결이 종료된다. - 기본 포트는 80번이다. HTTP 요청 메시지 클라이언트가 서버에게 보내는 요청 메시지 구성 요청 내용 헤더 빈 줄(empty line) 기타 메시지 HTTP 요청 메서드 REST : 주소를 자원이라고 보고 메서드를 동사라고 보는 개방 방식이다. 주요 메서드 GET : 존재하는 자원에 대한 요청/조회 Body(본문) X POST : 새로운 자원을 생성 Body(..
11048 이동하기 https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 �� www.acmicpc.net 문제 풀기 전 공부할 것 : 다이나믹 프로그래밍 풀이 1 미로에 있는 사탕을 배열로 저장한다. (r, c)에서 (r+1, c), (r, c+1), (r+1, c+1)로 이동할 수 있으므로 (n, m)은 (n-1, m), (n, m-1), (n-1, m-1)에서 오는 것이 가능한다. 그 중 가장 사탕을 많이 가져오는 것이 최댓값을 구하는 방법이다. 이때, 미로..
2294 동전 2 https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주�� www.acmicpc.net 문제 풀기 전 공부할 것 : 다이나믹 프로그래밍 풀이 1 BFS를 이용해서 해결하기 가치가 같은 동전이 여러 번 주어질 수도 있기 때문에 coins를 set으로 입력받는다. 사용한 동전의 최소 개수를 출력하기 때문에 check를 만들어 확인한다. 불가능한 경우를 위해 flag를 설정한다. que에 우선 주어진 동전의 종류를 넣고 하나씩 꺼내서 k..
1068 트리 www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 문제 풀기 전 공부할 것 : 그래프, 트리, 깊이 우선 탐색 풀이 각 노드의 부모를 parents에 저장한다. 삭제할 노드도 del_node에 저장하고 tree 맵을 만든다. parents를 for문으로 돌면서 삭제할 노드이거나 삭제할 노드를 부모로 둔 노드를 제외하고 tree에 저장한다. 삭제한 노드가 루트라면 빈 리스트를, 아니라면 [-1]를 que에 저장한다. tree를 돌면서 리프 노..
1049 기타줄 https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 문제 풀기 전 공부할 것 : 수학 풀이 1 6줄 패키지와 1줄 낱개 리스트를 따로 만든다. 6줄 패키지로만 산 경우와 6줄 패키지 + 낱개로 산 경우 중 작은 값을 출력한다. import math import sys input = sys.stdin.readline n, m = map(int, input().split()) six_set, one = [], [] for _ in ..
1292 쉽게 푸는 문제 https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1≤A≤B≤1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 문제 풀기 전 공부할 것 : 수학 풀이 1 section에 1을 한 번, 2를 두 번, 3을 세 번, ... 의 수를 누적하여 누적이 1000을 넘을 때까지 저장한다. a, b 구간을 for문을 돌면서 누적된 값보다 작아지면 그 인덱스를 더한다. a, b = map(int, input().split()) section = [0, 1] i = 1 while section[-1] < 1000: i += 1 s..
2217 로프 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 www.acmicpc.net 문제 풀기 전 공부할 것 : 수학, 그리디 알고리즘 풀이 각 로프가 버틸 수 있는 중량을 입력받는다. 중량을 정렬한다. 해당 중량보다 큰 중량에서는 해당 중량만큼 걸 수 있기 때문에 해당 중량 x 그것보다 같거나 큰 중량이 최대 중량이다. 버틸 수 있는 중량 = 해당 중량 X 해당 중량보다 큰 중량의 수 버틸 수 있는 중량 중 가장 큰 값이 최대 중량이다. import sys ..