목록Python (84)
기록방
👉 문제링크 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 🔸 문제 분석 🔸 카드 리스트에서 첫 번째 카드를 버리고, 가장 위로온 카드를 마지막으로 교체해 가며 마지막 1장을 출력한다. 🔸 코드 🔸 from collections import deque N = int(input()) arr = deque(range(1,N+1)) while len(arr) > 1: arr.popleft() arr.rotate(-1) print(arr[0]) 🔸 코드 해석 🔸 맨 앞 원소를 지우고, 전체 로테이션이 필요하므로 데..
👉 문제링크 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 🔸 문제 분석 🔸 입력 값에 따라 요세푸스 순열을 구현한다. 원형으로 앉아있는 N명의 사람들 중 마지막 한 명이 남을 때까지 K번째 사람을 제거한다. 🔸 코드 🔸 N, K = map(int,input().split()) arr = list(range(1,N+1)) print("",sep="") 🔸 코드 해석 🔸 사람들의 인덱스를 기억하기 위해 1부터 N까지의 값을 리스트로 저장한다. 현재 index에서 K를 더한 위치의 사람을 제거한다. 더한 위치 값이 전체 길이를 초과하지 않도록 % 연산을 수행한다. 제거는 pop을 사용한다. 🔸 e..
👉 문제링크 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 🔸 문제 분석 🔸 입력된 k층의 n호에 몇 명이 사는지 출력하는 문제이다. 0층 1호에서 n호는 1명에서 n명이 산다. 1층부터는 'k-1층의 1호~n호' 에 사는 사람들 수의 합만큼 살고있다. 🔸 코드 🔸 T = int(input()) apt = [list(range(1,15))] for i in range(1,15): apt.append([1]) for j in range(1,14): apt[i].append(apt[i][j-1] + apt[i-1][j]) for i in range(T..
👉 문제링크 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 수를 입력받아 오름차순 정렬한다. 차례대로 출력한다. N의 크기가 최대 1,000,000 이므로 빠른 입출력이 필요하다. 🔸 코드 🔸 import sys input = sys.stdin.readline print = sys.stdout.write N = int(input().strip()) arr = [] for i in range(N): arr.append(int(input().strip())) arr.sort() fo..
👉 문제링크 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 🔸 문제 분석 🔸 스택을 구현한다. 시간 제한이 0.5로 짧다. 🔸 코드 🔸 import sys input = sys.stdin.readline print = sys.stdout.write N = int(input().strip()) arr = [] for i in range(N): order = input().strip() if order[:4] == "push": arr.append(int(order[5:])) elif order..