Python

🏁 Algorithm/백준

[백준] 11866번: 요세푸스 문제 0(Python)

문제 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..

🏁 Algorithm/백준

[백준] 2851번: 슈퍼마리오(Python)

문제 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..

🏁 Algorithm/백준

[백준] 1021번: 회전하는 큐(Python)

문제 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..

🏁 Algorithm/백준

[백준] 2460번: 지능형 기차 2(Python)

문제 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는 각 역에서 탄 사람과..

🏁 Algorithm/백준

[백준] 11399번: ATM(Python)

문제 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..

🏁 Programming/Python

[Python] 한 번에 연속으로 입력 받기 (split, map)

백준 문제를 풀다보면 위와 같이 한 번에 연속으로 입력 받아야 하는 경우가 많다. 하지만 계속 잊어서 글로 남겨둔다. Python에서 입력을 받을 때는 input 함수 를 사용한다. input은 값을 문자열로 저장하기 때문에, 정수나 실수 형태로 저장하려면 int(input()) or float(input()) 형태로 저장할 수 있다. 여러 개의 값을 입력 받으려면 split() 을 사용한다. split도 마찬가지로 값을 문자열로 저장하기 때문에 map 함수 에 int or float을 앞에 지정해주어 정수나 실수로 변환한다. # map 함수 : 리스트의 요소를 지정된 함수로 처리하는 함수. 보통 여러 개의 데이터를 한 번에 다른 형태로 바꾸기 위해 사용한다. ≫ 형태 map ( function, ite..

Dhey
'Python' 태그의 글 목록