목록Computer Science (228)
DHistory
문제 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 풀이 정렬과 이진 탐색으로 풀 수도 있지만 set을 이용하니 풀이가 깔끔하여 해당 방법으로 풀었다. import sys n, m = map(int, sys.stdin.readline().rstrip().split()) a = [] for _ in range(n): a.append(sys.stdin.readline().rstrip()) b = [] for _ in range(m): b.append(sys.stdin.readline().rstrip()) de..
문제 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline().rstrip()) cards = list(map(int, sys.stdin.readline().rstrip().split())) m = int(sys.stdin.readline().rstrip()) numbers = list(map(int, sys.stdin.readline().rstrip().split())) def solution(cards, ..
문제 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline().rstrip()) a = list(map(int, sys.stdin.readline().rstrip().split())) m = int(sys.stdin.readline().rstrip()) b = list(map(int, sys.stdin.readline().rstrip().split())) def solution(a, b): re..
문제 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 풀이 import sys text = sys.stdin.readline().rstrip() def solution(text): answer = [] for i in range(1, len(text)): for j in range(i + 1, len(text)): answer.append(text[0:i][::-1] + text[i:j][::-1] + text[j:len(text)][::-1]) return sorted(answer)[0] print(solut..
문제 5800번: 성적 통계 첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다 www.acmicpc.net 풀이 import sys k = int(sys.stdin.readline().rstrip()) classes = [] for _ in range(k): classes.append(list(map(int, sys.stdin.readline().rstrip().split()))) def solution(classes): for index, value in enumerate(classes): value = sorted(value[1:..
문제 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline().rstrip()) numbers = [] for _ in range(n): number = int(sys.stdin.readline().rstrip()) numbers.append(number) def solution(numbers): return sorted(numbers, reverse=True) print(*solution(numbers), sep='\n') 채..
문제 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 풀이 import sys n, k = map(int, sys.stdin.readline().rstrip().split()) scores = [] for _ in range(n): no, g, s, b = map(int, sys.stdin.readline().rstrip().split()) scores.append([no, g, s, b]) def solution(scores, k): ranks = [0] * n rank = 1 scor..
문제 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 풀이 import sys n, m = map(int, sys.stdin.readline().rstrip().split()) a = list(map(int, sys.stdin.readline().rstrip().split()))[:n] b = list(map(int, sys.stdin.readline().rstrip().split()))[:m] def solution(a, b): return sorted(a + b) prin..
문제 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 import sys n, k = map(int, sys.stdin.readline().rstrip().split()) numbers = list(map(int, sys.stdin.readline().rstrip().split()))[:n] def solution(numbers, k): return sorted(numbers)[k - 1] print(solution(numbers, k)) 채점 결과
문제 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이 """ N개의 카드를 가지고 있다. 정수 M개가 주어졌을 때, 숫자 카드를 상근이가 가지고 있는지 아닌지 구하는 프로그램을 작성하시오. N: 카드의 개수 (1