목록코딩 테스트/백준 문제 풀이 (107)
공부 기록장
https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 코드 n = int(input()) plus = [] minus = [] total = 0 for i in range(n): num = int(input()) if num > 1: plus.append(num) elif num = len(plus): total += plus[i] else: total += (plus[i] * plus[i+1]) for i in range(0, len(minus)..
https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 코드 import sys n = int(sys.stdin.readline()) str = [sys.stdin.readline().strip() for _ in range(n)] words = {} for s in str: x = len(s)-1 # 지수로 올라갈 값 for i in s: if i in words: words[i] += 10**x else: words[i] = 10**x x -..
https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 코드 from heapq import heappush, heappop import sys card = [] n = int(input()) for _ in range(n): heappush(card, int(sys.stdin.readline())) total = 0 while len(card)>1: first = heappop(card) second = heappop(card) sum..
https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 코드 import sys n = int(input()) k = int(input()) point = list(map(int, sys.stdin.readline().split())) point.sort() answer = 0 wid = [] for i in range(1, len(point)): wid.append(point[i] - point[i-1]) wid.sort()..