알고리즘 공부 202

(Python)백준 코딩테스트 연습 - 삼각형 만들기(1448)

1. 문제 https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 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(int(input())) # print(n_l) n_l.sort(reverse=True) result = -1 for i, v in..

(Python)백준 코딩테스트 연습 - 시리얼 번호(1431)

1. 문제 https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 케이스 수 n = int(input()) # n_d : 케이스 저장할 딕셔너리 n_d = {} for i in range(n): serial = input().strip() serial_len = len(serial) num_sum = 0 for j in serial: if j.isdigit(..

(Python)백준 코딩테스트 연습 - 토너먼트 승자(1404)

1. 문제 https://www.acmicpc.net/problem/1404 1404번: 토너먼트 승자 첫째 줄에 수 28개가 주어진다. 처음 7개의 수는 0번 참가자가 1번 참가자와 싸워서 이길 수 있는 확률부터 7번 참가자와 싸워서 이길 수 있는 확률이다. 다음 6개의 수는 1번 참가자와 2번 참가자 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # w_r_l : 승리 확률 리스트 w_r_l = [[] for i in range(8)] w_r = list(map(int, input().split())) j = -1 j_l = [0, 7, 13, 18, 22, 25, 27] for i, v in enumerate(w_r): # print("i..

(Python)백준 코딩테스트 연습 - 미로 만들기(1347)

1. 문제 https://www.acmicpc.net/problem/1347 1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline from collections import deque # n : 행동 수 n = int(input()) # direc : 바라보는 방향 direc = "S" # c_p : 현재 위치 c_p = [0, 0] miro = deque([deque(['.'])]) order = input() for i in ord..

(Python)백준 코딩테스트 연습 - 약속(1183)

1. 문제 https://www.acmicpc.net/problem/1183 1183번: 약속 마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 케이스 수 n = int(input()) # t_l : 도착 시간 차이 리스트 t_l = [] # m_l = [] for i in range(n): a, b = map(int, input().split()) t_t = a - b t_l.append(t_t) t_l.sort() if len(t_l) % 2 =..

(Python)백준 코딩테스트 연습 - 선물(1166)

1. 문제 https://www.acmicpc.net/problem/1166 1166번: 선물 민식이는 아이들에게 선물할 같은 크기의 작은 박스를 N개 가지고 있다. 모든 작은 박스는 정육면체이고, 크기는 A × A × A 이다. 민식이는 이 작은 박스를 크기가 L × W × H 인 직육면체 박스에 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 들어갈 작은 박스 수, l : 직육면체 길이, w : 직육면체 너비, h : 직육면체 높이 n, l, w, h = map(int, input().split()) min_f = min(l, w, h) i = 0 if n = n: mi = mid else: ma = mid #print(mi + m..

(Python)백준 코딩테스트 연습 - 게임(1072)

1. 문제 https://www.acmicpc.net/problem/1072 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline def bin_sear(x, y, z, l_p, h_p): #print('x :', x, 'y :', y, 'z :', z, 'l_p :', l_p, 'h_p :', h_p) if abs(l_p - h_p) == 1: #print(h_p) return h_p m_p = (l_p + h_p) // 2 n..

(Python)백준 코딩테스트 연습 - 어린 왕자(1004)

1. 문제 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline import math # n : 테스트케이스 수 n = int(input()) for i in range(n): x1, y1, x2, y2 = map(int, input().split()) t = int(input()) eb_cnt = 0 for j in range(t): cnt = 0 cx, ..

(Python)백준 코딩테스트 연습 - 피보나치 함수(1003)

1. 문제 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 테스트 케이스 수 n = int(input().strip()) # pibo_l : 피보나치 배열 pibo_l = [[1,0], [0,1]] for i in range(n): cnt = int(input().strip()) if len(pibo_l)