백준(Python) 풀이 477

백준(Python) 2442번 별 찍기 - 5 풀이

Python으로 구현한 2442번 별 찍기 - 5 문제 풀이입니다. https://www.acmicpc.net/problem/2442 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net n = int(input()) count = n - 1 for i in range(1, 2*n, 2) : print(' ' * count, end='') print('*' * i) count -= 1 1. 출력 형식을 확인해보면 공백은 n-1개부터 출력되어 하나씩 줄어들기 때문에 초기설정은 n - 1 값으로 한다. 2. 반복문의 범위는 출력될 '*' 을 기준으로 하여, 1부터 2..

백준(Python) 1924번 2007년 풀이

Python으로 구현한 1924번 2007년 문제 풀이입니다. https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net a = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'] b = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] x, y = map(int, input().split()) day = 0 for i in range(0,..

백준(Python) 19237번 어른 상어 풀이

Python으로 구현한 19237번 어른 상어 문제 풀이입니다. https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net n, m, k = map(int, input().split()) # 모든 상어의 위치와 방향 정보를 포함하는 2차원 리스트 array = [] for i in range(n) : array.append(list(map(int, input().split()))) # 모든 상어의 현재 방향 정..

백준(Python) 19236번 청소년 상어 풀이

Python으로 구현한 19236번 청소년 상어 문제 풀이입니다. https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net import copy # 4 x 4 크기의 정사각형에 존재하는 각 물고기의 번호(없으면 -1)와 방향 값을 담는 테이블 array = [[None] * 4 for _ in range(4)] for i in range(4) : data = list(map(int, input().split())) # 매 줄마다 4마리..

백준(Python) 16236번 아기 상어 풀이

Python으로 구현한 16236번 아기 상어 문제 풀이입니다. https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net from collections import deque INF = 1e9 # 무한을 의미하는 값으로 10억을 설정 # 맵의 크기 N을 입력받기 n = int(input()) # 전체 모든 칸에 대한 정보 입력 array = [] for i in range(n) : array.append(list(map(int, input().s..

백준(Python) 3665번 최종 순위 풀이

Python으로 구현한 3665번 최종 순위 문제 풀이입니다. https://www.acmicpc.net/problem/3665 3665번: 최종 순위 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 본부에 www.acmicpc.net from collections import deque # 테스트 케이스만큼 반복 for tc in range(int(input())) : # 노드의 개수 입력 받기 n = int(input()) # 모든 노드에 대한 진입차수는 -으로 초기화 indegree = [0] * (n + 1) # 각 노드의 연결된 간선 정보를 담기위한 ..

백준(Python) 2887번 행성 터널 풀이

Python으로 구현한 2887번 행성 터널 문제 풀이입니다. https://www.acmicpc.net/problem/2887 2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net # 특정 원소가 속한 집합을 찾기 def find_parent(parent, x) : # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] != x : parent[x] = find_parent(parent, parent[x]) return parent[x] # 두 ..

백준(Python) 4375번 1 풀이

Python으로 구현한 4375번 1 문제 풀이입니다. https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net while True : try : n = int(input()) value = '1' while True : if int(value) % n == 0 : print(len(value)) break value += '1' except EOFError : break 1. 여러 개의 테스트 케이스로 이루어지므로 try ~ except 를 통해 코드를 작성한다. 2. 처음 value 값은 '1'로 초기화 해준..

백준(Python) 11404번 플로이드 풀이

Python으로 구현한 11404번 플로이드 문제 풀이입니다. https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정 # 노드의 개수 및 간선의 개수를 입력받기 n = int(input()) m = int(input()) # 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화 graph = [[INF] * (n + 1) for _ in range(n + 1)] # 자기 ..

백준(Python) 14501번 퇴사 풀이

Python으로 구현한 14501번 퇴사 문제 풀이입니다. https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net n = int(input()) # 전체 상담 개수 t = [] # 각 상담을 완료하는 데 걸리는 기간 p = [] # 각 상담을 완료했을 때 받을 수 있는 금액 dp = [0] * (n + 1) # 다이나믹 프로그래밍을 위한 1차원 dp 테이블 초기화 max_value = 0 for _ in range(n) : x, y = map(int, input().split()) t.append(x) p.append(y) # 리스트를 뒤에서부터 거꾸로 확인 for i in range(n..