목록정렬 (19)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 풀이 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) s = [] for i in range(n): s.append(list(map(int, input().split()))) s.sort(key=lambda x : (-x[1], -x[2], -x[3])) for i in range(..
문제 링크 https://www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 풀이 코드 import sys word = list(map(str, sys.stdin.readline().rstrip("\n"))) res = [] for i in range(1, len(word) - 1): for j in range(i + 1, len(word)): first = word[:i] second = word[i:j] third = word[j:] first.reverse(..
문제 링크 https://www.acmicpc.net/problem/15688 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. www.acmicpc.net 풀이 코드 import sys M=[] N=int(input()) for _ in range(N): M.append(int(sys.stdin.readline())) for i in sorted(M): print(i) 코드 해석 수를 입력받아 배열에 저장 한 후 정렬한 후 출력한다.
문제 링크 https://www.acmicpc.net/problem/1755 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 풀이 코드 m, n = map(int, input().split()) dict = {'1':'one', '2':'two', '3':'three', '4':'four', '5':'five', '6':'six', '7':'seven', '8':'eight', '9':'nine', '0':'zero'} l = [] for i in rang..
문제 링크 https://www.acmicpc.net/problem/16435 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다. www.acmicpc.net 풀이 코드 n, l = map(int,input().split()) h = list(map(int,input().split())) h.sort() for i in h: if l >= i: l += 1 else: break print(l) 코드 해석 과일을 크기순으로 정렬 한 후 스네이크버드의 길이를 한단계씩 늘려가며 비교한다. 만약 더..
문제 링크 https://www.acmicpc.net/problem/1059 풀이 코드 L = int(input()) S = list(map(int,input().split())) n = int(input()) S.sort() if n in S: print(0) else: min = 0 max = 0 for num in S: if num n and max == 0: max = num max -= 1 min += 1 print((n-min)*(max-n+1) + (max-n)) 코드 해석 (n보다 작은 수의 개수) * (n을 포함한 n보다 큰 수의 개수) + (n보다 큰 수의 개수) 라는 규칙을 적용한다. 먼저 수를 받은 후 리스트에 저장한다. 만약 리스트 안..
문제 링크 https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net 풀이 코드 n = int(input()) m = int(input()) nums = list(map(int,input().split())) nums.sort() left, right = 0, len(nums) - 1 count = 0 while left < right: sum_num = nums[left] + nums[right] if sum_num < m: l..
문제 링크 https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 풀이 코드 for _ in range(int(input())): a = int(input()) su1 = set(map(int, input().split())) b = int(input()) su2 = list(map(int, input().split())) for n in su2: print(1 if n in su1 else 0) 코드 해석 간단하게 풀 수 있는 문제이다. 수를 받은 뒤 s..