알고리즘 공부 202

(Python)백준 코딩테스트 연습 - ABCDE(13023)

1. 문제 https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 사람 수, m : 관계 수 n, m = map(int, input().split()) relationList = [[] for i in range(n)] for i in range(m): a, b = map(int, input().split()) relationList[a].append(b) relationList[b].append(a) # print(relationList) isFriend = Fals..

(Python)백준 코딩테스트 연습 - 럭키 세븐(28706)

1. 문제 https://www.acmicpc.net/problem/28706 28706번: 럭키 세븐 각 테스트케이스마다 한 줄에 하나씩, $K$를 $7$의 배수로 만들 수 있다면 “LUCKY”, 불가능하다면 “UNLUCKY”를 출력하세요. www.acmicpc.net 2. 풀이 # 백준 28706번 : 럭키 세븐 import sys input = sys.stdin.readline # t : 테스트 케이스 수 t = int(input()) testCase = [] for i in range(t): # n : 각 케이스의 턴 수 n = int(input()) dpSet = set([1]) for j in range(n): op1, v1, op2, v2 = map(str, input().split()) t..

(Python)백준 코딩테스트 연습 - 치킨 배달(15686)

1. 문제 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 2. 풀이 # 백준 15686번 : 치킨 배달 # 입력 코드 import sys input = sys.stdin.readline from itertools import combinations # n : 도시의 수 # m : 폐업시키지 않을 치킨집 수 n, m = map(int, input().split()) # nList : 도시 정보 배열 nList = [list..

(Python)백준 코딩테스트 연습 - 탑(2493)

1. 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 2. 풀이 # 입력 코드 import sys input = sys.stdin.readline # n : 탑의 수 n = int(input()) # nList : 탑 크기 배열 nList = list(map(int, input().split())) # 이전 탑의 크기를 비교하면서 자신의 크기보다 작으면 pop 크면 result에 앞 타워에 순서를 추가하고, # 큰 타워가 없다면 0을 추..

(Python)백준 코딩테스트 연습 - 신기한 소수(2023)

1. 문제 https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 2. 풀이 # 백준 2023번 : 신기한 소수 # 입력 코드 import sys input = sys.stdin.readline from collections import deque # n : 찾고 싶은 신기한 소수 자릿 수 n = int(input()) # n자리 수의 신기한 소수를 찾는 코드 q = deque(["2", "3", "5", "7"]) for i in rang..

(Python)백준 코딩테스트 연습 - 집합의 표현(1717)

1. 문제 https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net 2. 풀이 # 1717번 : 집합의 표현 # 입력 코드 import sys sys.setrecursionlimit(1000000) input = sys.stdin.readline # n : 집합 수, m : 연산 수 n, m = map(int, input().split()) # calList : 연산 리스트 calList = [list(map(int..

(Python)백준 코딩테스트 연습 - 최소비용 구하기(1916)

1. 문제 https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 2. 풀이 # import 코드 import sys input = sys.stdin.readline from collections import deque # 입력 코드 # n : 도시 수 n = int(input()) # m : 버스 수 m = int(input()) # graph : 버스 정보 그래프 배열 graph = [[] for i in rang..

(Python)백준 코딩테스트 연습 - 토마토(7569)

1. 문제 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 2. 풀이 # 7569번 : 토마토 # 입력 코드 import sys input = sys.stdin.readline from collections import deque # m : 상자 가로 칸 수 # n : 상자 세로 칸 수 # h : 쌓는 상자의 수 m, n, h = map(int, input().split()) # boxList : 박스에 담긴 토마토의 정..

(Python)백준 코딩테스트 연습 - 트리(1068)

1. 문제 https://www.acmicpc.net/submit/1068/63887458 로그인 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # 입력 코드 # n : 노드의 개수 n = int(input()) # node : 입력받은 노드 node = list(map(int, input().split())) # removeNode : 제거할 노드 removeNode = int(input()) # 노드 제거 코드 : 제거 대상 노드와 그 하위 노드의 값을 -2로 변경 def node_remove(deleteNode): global node global n node[deleteNode] = -2 for i in range(n): if node[..

(Python)백준 코딩테스트 연습 - 평범한 배낭(12865)

1. 문제 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 물품의 수 # k : 담을 수 있는 무게 n, k = map(int, input().split()) # nL : 물품의 무게, 가치 배열 nL = [[0, 0]] for i in range(n): nL.append(list(map(i..