목록코딩 테스트 (121)
공부 기록장
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 코드 from collections import deque n = int(input()) con = int(input()) graph = [[] for i in range(n+1)] for _ in range(con): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) # 무방향 그래프, graph[a], graph[b]에 동..
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..