백준 57

[백준][Python] 9935 문자열 폭발

💣 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 정답 코드 string = input() explosion = input() ans = [] last_char = explosion[-1] for i in string: ans.append(i) if i == last_char and ''.join(ans[-len(explosion):]) == explosion: del ans[-len(explosion):] if len(ans)..

코딩테스트 2024.03.24

[백준][Python] 2002 추월

🚨 https://www.acmicpc.net/problem/2002 2002번: 추월 입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이 www.acmicpc.net 내 풀이 N = int(input()) enter = [] # 차가 터널에 들어가는 순서대로 exit = [] # 차가 터널에서 나오는 순서대로 ans = 0 for _ in range(N): enter.append(input()) for _ in range(N): exit.append(input()) for i in exit: if i != enter[0]: # 차가 들어간 ..

코딩테스트 2024.03.23

[백준][Python] 7562 나이트의 이동

♟️ https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y, ex, ey): q = deque() q.append((x, y)) while q: cx, cy = q.popleft() if cx == ex and cy == ey: return chess[cx][cy] for i in range(8): nx, ny = cx + dx[i], cy + dy[i] if 0

코딩테스트 2024.03.22

[백준][Python] 16987 계란으로 계란치기

🥚 https://www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net 내 풀이 def dfs(n): ans = 0 if n == N: # 모든 계란을 검사한 경우 종료 cnt = 0 for i in range(N): if eggs[i][0] 0: # 같은 계란이 아니면서 깰 수 있는 계란인 경우 eggs[k][0] -= eggs[n][1] eggs[n][0] -= eggs[k][1] ans = max(ans, dfs(n+1)) eggs[k][0] ..

코딩테스트 2024.03.21

[백준][Python] 14502 연구소

🦠 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 내 풀이 from itertools import combinations from collections import deque import copy def bfs(): cnt = 0 q = deque() for j in virus: q.append((j[0], j[1])) while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k], cy + d..

코딩테스트 2024.03.20

[백준][Python] 2529 부등호

﹤﹥ https://www.acmicpc.net/problem/2529 2529번: 부등호 두 종류의 부등호 기호 ‘’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시 www.acmicpc.net 내 풀이 def dfs(n, lst): if n == k+1: # 부등호 관계를 만족하는 정수가 만들어진 경우 ans.append(lst) return for j in range(10): if not visited[j]: if n == 0: visited[j] = True dfs(n+1, lst + [j]) visited[j] = False else: if eval(str(lst[n-1]) + inequ..

코딩테스트 2024.03.20

[백준][Python] 2847 게임을 만든 동준이

🎮 https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 내 풀이 N = int(input()) score = [] ans = 0 for _ in range(N): score.append(int(input())) for i in range(N-1, 0, -1): if score[i-1] >= score[i]: new_score = score[i] - 1 ans += score[i-1] - new_score score[i-1] = new_score ..

코딩테스트 2024.03.19

[백준][Python] 22352 항체 인식

💉 https://www.acmicpc.net/problem/22352 22352번: 항체 인식 첫 번째 줄에는 SP 촬영 결과의 크기를 의미하는 두 정수 $N$과 $M$이 주어진다. ($1 \le N, M \le 30$) 이는 촬영 결과가 세로로 $N$칸, 가로로 $M$칸 크기의 격자라는 것을 의미한다. 다음 $N$개의 줄에는 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): global change q = deque() q.append((x,y)) visited[x][y] = True current = after[x][y] # 현재 영역의 값 if before[x][y] != current: # 백신을 놓기 전과 후의 결과가 다를 때..

코딩테스트 2024.03.18

[백준][Python] 2003 수들의 합 2

🔢 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 내 풀이 N, M = map(int, input().split()) num = list(map(int, input().split())) s = e = 0 ans = 0 while s e: e += 1 elif M > sum(num[s:e+1]): e += 1 else: s += 1 if s > e: e += 1 print(ans) 코드 설명 s: 시작 ..

코딩테스트 2024.03.17