Problem Solving/Baekjoon
-
[백준] 1931번 문제 (회의실 배정) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 13:25
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) l = sorted(sorted([list(map(int, input().split())) for _ in range(n)], key=lambda x: x[0]), key=lambda x: x[1]) count = 0 last = 0 for a, b in l: if last
-
[백준] 10610번 문제 (30) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:34
https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net n = sorted(list(input()), reverse=True) sum = sum(map(int, n)) if sum % 3 != 0 or "0" not in n: print(-1) else: print(''.join(n)) 30의 배수가 되는 조건은 일의 자리수가 0. 각 자리의 숫자들을 더했을때 3으로 나누어 떨어진다. 위 2개가 있고, 해당 조건을 대입하면 정답을 구할 수 있다.
-
[백준] 2875번 문제 (대회 or 인턴) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:30
https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net n, m, k = map(int, input().split()) cnt = 0 while n + m - k >= 3 and n >= 2 and m >= 1: n -= 2 m -= 1 cnt += 1 print(cnt) 팀이 만들어 질 수 있는 경우는 n + m - k >= 3 n >= 2 m >= 1 위 3가지 조건이 동시에 만족하면 된다.
-
[백준] 1992번 문제 (쿼드트리) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:27
https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) mtx = [list(map(int, list(input().strip()))) for _ in range(n)] def check(x, y, n): for i in range(x, x + n): for j in range(y, y + n): if mtx[x][y] != mtx[i][j]..
-
[백준] 1780번 문제 (종이의 개수) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:23
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) mtx = [list(map(int, input().split())) for _ in range(n)] m, z, o = 0, 0, 0 def check(x, y, length): global m, z, o for i in range(x, x + length): for j in range(..
-
[백준] 10816번 문제 (숫자 카드 2) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:19
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net import sys import collections input = sys.stdin.readline n = int(input()) nums = collections.Counter(list(map(int, input().split()))) m = int(input()) target = list(map(int, input().split())) for t in tar..
-
[백준] 2110번 문제 (공유기 설치) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:15
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net import sys input = sys.stdin.readline n, c = map(int, input().split()) houses = [] for _ in range(n): houses.append(int(input())) houses.sort() left = 1 right = houses[-1] - houses[0] result = 0..
-
[백준] 2805번 문제 (나무 자르기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:06
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net import sys input = sys.stdin.readline n, m = map(int, input().split()) trees = list(map(int, input().split())) left, right = 0, max(trees) while left 0: _sum += t - mid if _sum >= m: left = mid + 1 els..
-
[백준] 1654번 문제 (랜선 자르기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:03
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net import sys k, n = map(int, input().split()) lans = [int(sys.stdin.readline()) for _ in range(k)] left, right = 1, max(lans) while left = n: left = mid + 1 else: right = mid - 1 print(right) 이분탐색 문제이다. left를 ..
-
[백준] 11725번 문제 (트리의 부모 찾기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 6. 11:00
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net import sys from collections import deque input = sys.stdin.readline n = int(input()) tree = [[] for _ in range(n + 1)] parent = [0 for _ in range(n + 1)] for _ in range(n - 1): a, b = map(int, input().split()) tree[a].append(b) tree[b].append(a) q = deque() q..