본문 바로가기

🔅코딩테스트 공부🔅/❗백준138

[백준] 5014번 스타트링크(python) https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 1. 내가 작성한 코드 from collections import deque f, s, g, u, d = map(int,input().split()) visit = [0] * (f+1) def bfs(): queue = deque() queue.append(s) visit[0] = 1 visit[s] = 1 while queue: x = queue.popleft() dx = [u,-d] for i in ran.. 2023. 2. 17.
[백준] 10026번 적록색약(python) https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 1. 내가 작성한 코드 from collections import deque def bfs(matrix,i,j,cnt,visit): queue = deque() queue.append((i,j)) visit[i][j] = cnt dx = [-1,1,0,0] dy = [0,0,-1,1] while queue: x,y = queue.popleft() for i in range(4): nx = .. 2023. 2. 16.
[백준] 1463번 1로 만들기(python) https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 1. 내가 작성한 코드 import sys num = int(sys.stdin.readline().rstrip()) dp = [0,0,1,1] dp = dp + [0] * (num-3) if num >= 4: for n in range(4,num+1): if n % 2 == 0 and n % 3 == 0: #2,3 모두 나누어 떨어지는 경우 dp[n] = 1 + min(dp[n//2],dp[n//3],dp[n-1]) elif n % 2 == 0: #2로만 나누어 떨어지는 경우 dp[n] = 1 + min(dp[.. 2023. 2. 16.
[백준] 9095번 1,2,3 더하기(python) https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 1. 내가 작성한 코드 t = int(input()) for i in range(t): n = int(input()) d = [0,1,2,4] #1,2,3을 만들 수 있는 경우의 수 if n > 3: d = d + [0] * (n-3) for i in range(4,n+1): d[i] = d[i-1] + d[i-2] + d[i-3] print(d[n]) 1. 수를 만들 때는 1,2,3만을 사용할 수 있다. 1을 만들 수 있는 방법 => (1) => 1가지 2를 만들 수 있는 방법 => (1,1).. 2023. 2. 16.
[백준] 22233번 가희와 키워드(python) https://www.acmicpc.net/problem/22233 22233번: 가희와 키워드 1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을 www.acmicpc.net 1. 내가 작성한 코드 set 을 이용해서 문제를 해결하려고 했는데 시간초과로 자꾸 실패해서 딕셔너리로 해결했다. import sys input = sys.stdin.readline n,m = map(int, input().split()) keyword = {} for i in range(n): keyword[input().rstrip()] = 1 for i in.. 2023. 2. 16.
[백준] 4949번 균형잡힌 세상(python) https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 1. 내가 작성한 코드 while True: arr = list(input()) if arr == ["."]: #.만나면 종료 break stack = [] for i in arr: if i == "[" or i == "(": stack.append(i) elif i == "]": if len(stack) != 0 and stack[-1] == "[": stack.pop() .. 2023. 2. 15.
[백준] 2630번 색종이 만들기(python) https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) #한 변의 길이 paper = [list(map(int, input().split())) for _ in range(n)] result = [] def cut(x,y,n): color = paper[x][y] #첫 paper의 색 for i in range(x, x+n): for j in range(y,y+n): if.. 2023. 2. 14.
[백준] 7569번 토마토 (python) https://www.acmicpc.net/step/24 그래프와 순회 단계 BFS의 특징은 각 정점을 최단경로로 방문한다는 것입니다. 이 점을 활용해 최단거리를 구해 봅시다. www.acmicpc.net 1. 내가 작성한 코드 from collections import deque import sys input = sys.stdin.readline m,n,h = map(int, input().split()) matrix = [[list(map(int, input().split())) for _ in range(n)]for _ in range(h)] #첫 상태 queue = deque() for i in range(h): for j in range(n): for k in range(m): if matrix.. 2023. 2. 13.
[백준] 7576번 토마토 (python) https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 1. 내가 작성한 코드 from collections import deque n, m = map(int, input().split()) arr = [] for i in range(m): arr.append(list(map(int, input().split()))) arr2 = [] #처음 시작이 1인 좌표 cnt = 0 for i in range(m): for j in range(.. 2023. 2. 12.