알고리즘 공부 202

(Python)백준 코딩테스트 연습 - 친구(1058)

1. 문제 https://www.acmicpc.net/problem/1058 1058번: 친구 지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 사람 수 n = int(input()) # n_l : 사람 별 친구 리스트 n_l = [] for i in range(n): n_l.append(input()) # f_l : 사람 별 2-친구 수 f_l = [] for i_k, i in enumerate(n_l): # print('i_k :', i_k..

(Python)백준 코딩테스트 연습 - 수열의 합(1024)

1. 문제 https://www.acmicpc.net/problem/1024 1024번: 수열의 합 첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline from collections import deque n, l = map(int, input().split()) n_l = deque() iter_b = True for i in range(l, 101): if iter_b == False: break n_l.clear() temp = n // i n_l.append(temp) if i % 2 == ..

(Python)백준 코딩테스트 연습 - 유기농 배추(1012)

1. 문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline sys.setrecursionlimit(2_501) # n : 테스트 케이스 수 n = int(input()) def veget_find(x, y, land_l): # print("x :", x, "y :", y) # for i in land_l: # print(i) # print("---------------") if ..

(Python)백준 코딩테스트 연습 - 병든 나이트(1783)

1. 문제 https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 체스 세로 길이, m : 체스 가로 길이 n, m = map(int, input().split()) if n == 1: print(1) elif n == 2: if m

(Python)백준 코딩테스트 연습 - 분수 합(1735)

1. 문제 https://www.acmicpc.net/problem/1735 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline import math ja1, mo1 = map(int, input().split()) ja2, mo2 = map(int, input().split()) ja = (ja1 * mo2) + (ja2 * mo1) mo = mo1 * mo2 daeyack = math.gcd(ja, mo) ja = ja // daeyack mo = mo // daeyack print(..

(Python)백준 코딩테스트 연습 - 영식이의 손가락(1614)

1. 문제 https://www.acmicpc.net/problem/1614 1614번: 영식이의 손가락 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3 위와같이 세면 총 15를 셀 수 있다. 2번째 손가락을 3번 이용했으니 더 이상 사용할 수 없다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # f : 다친 손가락 번호, n : 다친 손가락을 사용할 수 있는 횟수 f = int(input()) n = int(input()) t = 0 if f == 1: t = n * 8 elif f == 2: if n % 2 == 0: t = 1 elif n % 2 == 1: t = 7 t += (n // 2) * 8 eli..

(Python)백준 코딩테스트 연습 - 침투 계획 세우기(1606)

1. 문제 https://www.acmicpc.net/problem/1606 1606번: 침투 계획 세우기 첫째 줄에 멍멍이의 금고의 위치를 나타내는 좌표가 주어진다. 각 수는 0이상 1,000,000이하의 정수이다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # x, y : 각 좌표 x, y = map(int, input().split()) total = 1 if x > 0 : for i in range(1, x + 1): total += (6 * i) if y < 0: if abs(y) 0: total += 1 if y == 1: pass else: for i in range(0, y - 1): total += 7 + (6 * (x + ..

(Python)백준 코딩테스트 연습 - 정사각형(1485)

1. 문제 https://www.acmicpc.net/problem/1485 1485번: 정사각형 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 네 줄로 이루어져 있으며, 점의 좌표가 한 줄에 하나씩 주어진다. 점의 좌표는 -100,000보다 크거나 같고, 100,000보다 작거나 같 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # t : 테스트케이스 수 t = int(input()) t_l = [[] for i in range(t)] for i in range(t): for j in range(4): t_l[i].append(list(map(int, input().split()))) for i in t_l: dist =..

(Python)백준 코딩테스트 연습 - 수리공 항승(1449)

1. 문제 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 물이 새는 곳 수 # l : 주어지는 테이프 길이 n, l = map(int, input().split()) # l_l : 물이 새는 위치 리스트 l_l = list(map(int, input().split())) l_l.sort() # cover_st, cover_en : 현재 붙..