목록BOJ (335)
기록방
👉 문제링크 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..
👉 문제링크 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 🔸 문제 분석 🔸 이항 계수를 계산하는 문제이다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { int answer = 0; Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); int sum = 1; for(int i = 1; i