연습의 흔적들🚩/백준⚾ 26

[백준] 1932번 정수 삼각형 파이썬(Python) 풀이

1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline n = int(input()) tree = [] for _ in range(n): tree.append([int(f) for f in input().split()]) for i in range(1, n): for j in range(0 , i+1): if j == 0: tree[i][0] += tree[i-1][0] elif j == i: tree[i][j] += tree[i-1][j-1] else: tree[i][j] += max(tree[i-1]..

[백준] 1946번 신입 사원 파이썬(Python) 풀이

1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline case = int(input()) for _ in range(case): N = int(input()) total = [] for _ in range(N): a, b = map(int, input().split()) total.append((a, b)) total.sort(key=lambda x: x[0]) cnt = 1 check = total[0][1..

[백준] 2667번 단지 번호 붙이기 파이썬(Python) 풀이

2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net [문제] [코드] DFS (깊이 우선 탐색) 풀이 import sys from collections import deque input = sys.stdin.readline N = int(input()) graph = [] result = [] count = 0 for _ in range(N): graph.append(list(map(int, input().rstrip()))) dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] def dfs(x, ..

[백준] 1654번 랜선 자르기 파이썬 풀이

1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline k, n = map(int, input().split()) LAN_LIST = [] for _ in range(k): LAN_LIST.append(int(input())) start = 1 end = max(LAN_LIST) while start = n: result = mid start = mid + 1 else: end = mid - 1 prin..

[백준] 1326 폴짝폴짝 파이썬 풀이

1326번: 폴짝폴짝 첫째 줄에 징검다리의 개수 N(1≤N≤10,000)이 주어지고, 이어서 각 징검다리에 쓰여 있는 N개의 정수가 주어진다. 그 다음 줄에는 N보다 작거나 같은 자연수 a, b가 주어지는 데, 이는 개구리가 a번 www.acmicpc.net [문제] [코드] from collections import deque def bfs(start, finish, stone, n): q = deque() q.append(start - 1) visited = [-1] * n visited[start-1] = 0 while q: node = q.popleft() for i in range(n): if (i-node) % stone[node] == 0 and visited[i] == -1: q.appen..

[백준] 12018번 Yonsei TOTO 파이썬 풀이

12018번: Yonsei TOTO 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline n,m = map(int, input().split()) result =[] for _ in range(n): p, l = map(int, input().split()) l_list = list(map(int,input().split())) l_list.sort(reverse=True) if p < l : result.append(1) else: result.append..

[백준] 13471번 카드 문자열 파이썬 풀이

13417번: 카드 문자열 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline for _ in range(int(input())): num = int(input()) s_list = list(map(str, input().split())) point = [s_list.pop(0)] for i in s_list: if point[0] >= i: point.insert(0, i) else: point.append(i) print("".join(point)) [..

[백준] 9440번 숫자 더하기 파이썬 풀이

[문제] 9440번: 숫자 더하기 강민이가 초등학교 3학년일 때, 담임선생님이 이런 문제를 냈었다. 숫자 1, 2, 7, 8, 9 를 사용해서 만든 두 숫자를 더했을 때, 나올 수 있는 가장 작은 수는 무엇일까요? 강민이는 이 문제의 답이 2 www.acmicpc.net [코드] import sys input = sys.stdin.readline while True: num = list(map(int, input().split())) if num[0] == 0: break n = num[0] number = sorted(num[1:]) num1, num2 = str(), str() for i in range(n): if number[i] != 0: num1, num2 = str(number[i]), st..

[백준] 1213번 팰린드롬 만들기 파이썬 풀이

1213번: 팰린드롬 만들기첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.www.acmicpc.net[문제][코드]name = input()names = [0] * 26for j in name: names[ord(j) - 65] += 1a = 0a_a = ""a_c = ""for i in range(26): if names[i] % 2 == 1: a += 1 a_a += chr(i + 65) a_c += chr(i+65) * (names[i] // 2)if a > 1: print("I'm Sorry Hansoo")else: print(a_c..