[BOJ] 백준 1943 동전분배 파이썬 (Python)
2022. 8. 23. 15:39
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/1943 1943번: 동전 분배세 개의 입력이 주어진다. 각 입력의 첫째 줄에 동전의 종류 N(1 ≤ N ≤ 100)이 주어진다. 각 입력의 둘째 줄부터 N+1째 줄까지 각각의 동전의 금액과 개수가 빈 칸을 사이에 두고 주어진다. 단, 원www.acmicpc.net코드import sysinput = sys.stdin.readlinefor tc in range(3): # 동전 종류의 갯수 N = int(input()) coin_info = {} total = 0 for i in range(N): coin, num = map(int, input().split()) coin_info[coin]..
[BOJ] 백준 2591 숫자카드 파이썬 (Python)
2022. 8. 23. 15:30
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/2591 2591번: 숫자카드1부터 34까지 수가 적힌 카드가 충분히 많이 있다. 이들 중 몇 장을 일렬로 늘어놓고, 그 숫자를 차례로 적었다. 예를 들어 아래와 같이 카드가 놓인 경우 숫자를 차례로 적으면 27123이 된다. 나중www.acmicpc.net코드import sysinput = sys.stdin.readlinenums = list(input().rstrip())grand = ''parent = ''num = ''dp = [0] * len(nums)# dp 초기값 설정dp[0] = 1if (nums[1] != '0' and 1 3: break elif int(num) == 0 and 0 34: ..
[BOJ] 백준 1946 신입사원 파이썬 (Python)
2022. 8. 23. 15:22
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/1946 1946번: 신입 사원첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성www.acmicpc.net코드import sysinput = sys.stdin.readlinefor tc in range(int(input())): N = int(input()) cnt = 1 DtoI = [0] * (N + 1) for i in range(1, N + 1): Docu, Interview = map(int, input().split()) ..
[BOJ] 백준 11053 가장 긴 증가하는 부분수열 파이썬(Python)
2022. 8. 23. 15:11
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이www.acmicpc.net코드import syslength = int(input())nums = list(map(int, input().split()))dp = [1] * lengthresult = 0for a in range(length): for b in range(a): if nums[a] > nums[b]: ..
[BOJ] 백준 13565 침투 파이썬 (Python)
2022. 8. 23. 14:53
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/13565 13565번: 침투첫째 줄에는 격자의 크기를 나타내는 M (2 ≤ M ≤ 1,000) 과 N (2 ≤ N ≤ 1,000) 이 주어진다. M줄에 걸쳐서, N개의 0 또는 1 이 공백 없이 주어진다. 0은 전류가 잘 통하는 흰색, 1은 전류가 통하지 않www.acmicpc.net첫번째 제출런타임에러?RecursionError를 처음 만났던 문제였다. 재귀호출이 제한된 양을 넘어서면 나타나는 에러로 해결방법은 DFS를 BFS로 수정하거나 제한을 변경하면 된다. DFS를 공부하고 있어서 후자를 선택했다.import syssys.setrecursionlimit(10**6) # 제한을 변경하는 코드또 다른 런타임 에러로 IndexErro..
[BOJ] 백준 16922 로마숫자만들기 파이썬 (Python)
2022. 8. 23. 14:43
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/16922 16922번: 로마 숫자 만들기2, 6, 10, 11, 15, 20, 51, 55, 60, 100을 만들 수 있다.www.acmicpc.net첫번째 문제 풀이def dfs(step, N): global result if step == N: result.append(sum(tmp)) else: for i in range(4): tmp.append(rom_nums[i]) dfs(step + 1, N) tmp.pop()N = int(input())rom_nums = [1, 5, 10, 50]result = []tmp = []dfs(0,..
[BOJ] 백준 14889 스타트와링크 자바 (Java) 파이썬 (Python)
2022. 8. 23. 14:34
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다.www.acmicpc.net코드N = int(sys.stdin.readline())S = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]def dfs(step): global mini if len(A) == N >> 1: totalA = totalB = 0 tmp_B = [] for player in all: ..
[BOJ] 백준 21735 눈덩이 굴리기 파이썬(Python)
2022. 8. 23. 13:14
알고리즘/백준[BaekJoon]
[문제] https://www.acmicpc.net/problem/21735 21735번: 눈덩이 굴리기눈송이들이 많은 동네인 숙명여대 앞마당에서 눈사람 만들기 대회를 연다. 앞마당의 길이는 $N$이고 위치 $1$부터 위치 $N$ 까지만 눈이 쌓여있다. 위치 $i$에 눈이 $a_i$만큼 쌓여있다. 대회 규칙은www.acmicpc.net코드def dfs(step, idx): global maxi if step == M: if S[-1] >= maxi: maxi = S[-1] return else: for i in range(2): if i == 0: idx += 1 ..