문제 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 제출 코드 from collections import deque N, K = map(int, input().split()) q = deque() for i in range(1, N+1): q.append(i) li = [] while q: for i in range(K-1): q.append(q.popleft()) li.append(q.popleft()) print("") 이 문제는 deque를 사용하면 되는 문제이다. popleft()는 가장 왼쪽의 원소를 제거해주며 제거한 값을 return 해준다. 따라서 위에 q.append(q.popl..
문제 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net 제출 코드 score = [] sum = 0 sum_under = 0 for i in range(10): score.append(int(input())) for i in range(len(score)): sum += score[i] if sum > 100: sum_under = sum - score[i] break; if abs(100-sum) == abs(100-sum_under): print(sum) else: if abs(100-sum) < abs(100-sum_under): print(sum) else : pr..
문제 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 제출코드 N, M = map(int, input().split()) P = list(map(int, input().split())) q = [i for i in range(1, N+1)] cnt = 0 for i in range(M): # 위치 0과의 거리 차이로 왼쪽으로 or 오른쪽으로 이동할 지를 결정 if q.index(P[i]) < len(q)-q.index(P[i]): while True: if q[0] == P[i]: del q[0] brea..
문제 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 제출 코드 num = [] left = [0] for i in range(10): num.append(list(map(int, input().split()))) for i in range(1,11): add = num[i-1][1] - num[i-1][0] left.append(left[i-1] + add) print(max(left)) 먼저, num 리스트에 2차원 배열로 입력받아 append 함수로 리스트에 추가한다. add는 각 역에서 탄 사람과..
문제 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 제출 코드 N = int(input()) P = list(map(int, input().split())) total = 0 P.sort() for i in range(N): for j in range(i+1): total += P[j] print(total) 이 문제는 먼저 입력받은 각 사람들의 인출 시간을 작은 시간 부터 정렬을 해야한다. 리스트의 정렬을 위해 리스트의 내부 요소를 정렬해주는 sort() 함수를 사용했다. sort 함수는 기본적으로 오름차순으로 정렬이 되기 때문에 P.s..
백준 문제를 풀다보면 위와 같이 한 번에 연속으로 입력 받아야 하는 경우가 많다. 하지만 계속 잊어서 글로 남겨둔다. Python에서 입력을 받을 때는 input 함수 를 사용한다. input은 값을 문자열로 저장하기 때문에, 정수나 실수 형태로 저장하려면 int(input()) or float(input()) 형태로 저장할 수 있다. 여러 개의 값을 입력 받으려면 split() 을 사용한다. split도 마찬가지로 값을 문자열로 저장하기 때문에 map 함수 에 int or float을 앞에 지정해주어 정수나 실수로 변환한다. # map 함수 : 리스트의 요소를 지정된 함수로 처리하는 함수. 보통 여러 개의 데이터를 한 번에 다른 형태로 바꾸기 위해 사용한다. ≫ 형태 map ( function, ite..