Immersion In Data

Python/Baekjoon 60

백준 1260번 : DFS와 BFS

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net from collections import deque n, m, v = map(int, input().split()) graph = [[False] * (n + 1) for _ in range(n + 1)] for i in range(m): a, b = map(int, input().split()) graph[a][b] = True graph[b][a] = T..

Python/Baekjoon 2022.12.06

백준 2178번 : 미로 탐색

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net from collections import deque n, m = map(int, input().split()) # 2차원 리스트의 맵 정보 입력받기 graph = [] for i in range(n): graph.append(list(map(int, input()))) # 이동할 네 방향 정의(상, 하, 좌, 우) dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] def bfs(x,y): # 큐(Queue) ..

Python/Baekjoon 2022.11.28

백준 2798번 : 블랙잭

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net import itertools n, m = map(int, input().split()) numbers = list(map(int, input().split())) result = 0 for number in itertools.combinations(numbers, 3): if result < sum(number)

Python/Baekjoon 2022.11.21

백준 5585번 : 거스름돈

https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net a = 1000 - int(input()) change = [500, 100, 50, 10, 5, 1] count = 0 for coin in change: count += a // coin a %= coin print(count)

Python/Baekjoon 2022.11.16

백준 6603번 : 로또

https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net import itertools while True: k, *S = map(int, input().split()) S.sort() if k == 0: break for result in itertools.combinations(S, 6): print(' '.join(map(str, result))) print()

Python/Baekjoon 2022.11.14

백준 1759번 : 암호 만들기

https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net import itertools vowels = ['a', 'e', 'i', 'o', 'u'] # 5개의 모음 정의 L, C = map(int, input().split()) # 가능한 암호를 사전식으로 출력해야 하므로 입력 이후에 정렬 수행 array = input().split() array.sort() # 길이가 L인 모든 암호 조합을 확인 for password in itertools.combin..

Python/Baekjoon 2022.11.14

백준 11659번 : 구간 합 구하기 4

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net import sys N, M = map(int, input().split()) data = list(map(int, sys.stdin.readline().split())) sum_value = 0 prefix_sum = [0] for k in data: sum_value += k prefix_sum.append(sum_value) for prefix in range(M): ..

Python/Baekjoon 2022.11.14

백준 4948번 : 베르트랑 공준

https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net def checkvalue(num): a = int(num**0.5) if num == 1: return False else: for i in range(2, a+1): if num % i == 0: return False return True lst = [] for i in list(range(2, 246912)): #제한 1

Python/Baekjoon 2022.10.18

백준 1929번 : 소수 구하기

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net M, N = map(int, input().split()) for num in range(M,N+1): if num == 1: continue for k in range(2, int(num**0.5)+1): #제곱근까지만 나누기 if num % k == 0: break else: print(num)

Python/Baekjoon 2022.10.18