문제 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..
문제 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 이 문제는 for문과 if문을 같이 사용할 수 있는지 확인하는 문제였다. 그러나 내가 헤멘 부분은 오히려 *입력받는 부분*이었다. 처음 제출한 코드 N, X = input().split() A = [] for i in range(int(N)): a = int(input()) A.append(a) for i in range(len(A)): if A[i] < int(X): print(A[i], end=" ") 오류는 없었지만 런타임에러가 뜬..