import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int score = Integer.parseInt(br.readLine()); switch(score/10){ case 9: case 10: System.out.println("A"); break; case 8: System.out.println("B"); break;..
import sys N = int(sys.stdin.readline()) N_list = list(map(int, sys.stdin.readline().split())) N_list.sort() M = int(sys.stdin.readline()) M_list = list(map(int, sys.stdin.readline().split())) hashmap = {} for n in N_list: if n in hashmap: hashmap[n] += 1 else: hashmap[n] = 1 print(" ".join(str(hashmap[m]) if m in hashmap else '0' for m in M_list)) ▼링크 https://www.acmicpc.net/problem/10816 10816..
import collections import sys test = int(sys.stdin.readline()) for _ in range(test): cnt = 0 n, m = map(int, sys.stdin.readline().split()) priority = collections.deque(map(int, sys.stdin.readline().split())) if len(priority) == 1: print(1) else: while True: index = priority.index(max(priority)) for _ in range(index): a = priority.popleft() priority.append(a) if m >= 1: m -= 1 else: m = len(prior..
import collections n, k = map(int, input().split()) result = [] queue = collections.deque([i for i in range(1, n + 1)]) while len(queue) > 0: for _ in range(k): if _ == k - 1: num = queue.popleft() result.append(num) else: num = queue.popleft() queue.append(num) print("") ▼링크 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicp..
import sys import collections n = int(sys.stdin.readline()) queue = [] queue = collections.deque([i for i in range(1, n+1)]) while len(queue) > 1: queue.popleft() num = queue.popleft() queue.append(num) print(queue[0]) 그냥 리스트 선언을 하여 큐를 만들면 시간초과가 된다. collection.deque를 써주어 해결하였다. ▼ 링크 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 ..
n = int(input()) fibo_array = [0 for _ in range(n+1)] fibo_array[1] = 1 for i in range(2, n+1): fibo_array[i] = fibo_array[i-1]+fibo_array[i-2] print(fibo_array[-1]) ▼링크 https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3..
import sys n = int(sys.stdin.readline()) num_list = [] for _ in range(n): num_list.append(int(sys.stdin.readline())) num_list.sort() print("\n".join(list(map(str, num_list)))) 파이썬 sort함수는 시간복잡도 O(nlogn)이다. ▼ 링크 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net
import sys from collections import Counter n = int(sys.stdin.readline()) num_list = [] for _ in range(n): num_list.append(int(sys.stdin.readline())) num_list.sort() print(round(sum(num_list) / n)) # 산술평균 print(num_list[len(num_list) // 2]) # 중앙값 if len(num_list)>1: c = Counter(num_list).most_common(2) # 빈도수 print(c[1][0] if c[0][1] == c[1][1] else c[0][0]) else: print(num_list[0]) print(num_list..
import sys n = int(input()) u_list = [] for _ in range(n): line = sys.stdin.readline().split() u_list.append((int(line[0]), line[1])) u_list.sort(key=lambda x: x[0]) for mem in u_list: print(mem[0], mem[1]) ▼링크 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. www.acmicpc.net
import sys n = int(input()) str_list = [] for i in range(n): str_list.append(sys.stdin.readline()) str_list = list(set(str_list)) str_list.sort(key=lambda x: (len(x), x)) print("".join(str_list)) ▼링크 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net