브루트포스 12

[백준][Python] 7568 덩치

💪🏻https://www.acmicpc.net/problem/7568  내 풀이N = int(input())weight = []height = []rank = []for _ in range(N): w, h = map(int, input().split()) weight.append(w) height.append(h)for i in range(N): cw = weight[i] ch = height[i] big = 0 for j in range(N): if cw  ✔️ 나보다 덩치가 큰 사람 ➡ 나보다 몸무게가 많이 나가면서 나보다 키가 큰 사람  코드 설명 weight: 몸무게를 저장하는 리스트height: 키를 저장하는 리스트rank: 덩치 등수를 저장..

코딩테스트 2024.05.12

[백준][Python] 1189 컴백홈

⛺️ https://www.acmicpc.net/problem/1189 1189번: 컴백홈 첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다 www.acmicpc.net 내 풀이 (첫 번째) def dfs(x, y, d): global ans if x == 0 and y == C - 1: count_T = 0 for i in range(R): count_T += visited[i].count(True) if count_T == K - 1: ans += 1 return if x = R or y < 0 o..

코딩테스트 2024.04.14

[백준][Python] 22251 빌런 호석

🛗 https://www.acmicpc.net/problem/22251 22251번: 빌런 호석 LED를 2개까지 바꿀 수 있을 때, 5층에서 3층, 6층, 8층, 그리고 9층으로 바꿔버릴 수 있다. www.acmicpc.net 내 풀이 def onoff(nX): global result ans = 0 if nX N: return currentX = list(f'{X:0{K}d}') currentnX = list(f'{nX:0{K}d}') for i in range(K): currentXNum = num[currentX[i]].copy() currentnXNum = num[currentnX[i]].copy() common_values = [value for value in curre..

코딩테스트 2024.03.30

[백준][Python] 7490 0 만들기

🧮 https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net 내 풀이 def dfs(n, s): if n == N: s += str(N) ns = ''.join(s.split()) if eval(ns) == 0: ans.append(s) return dfs(n+1, s + str(n) + '+') dfs(n+1, s + str(n) + '-') dfs(n+1, s + str(n) + ' ') T = int(input()) for _ in range(T): ans = [] N = int(input()) df..

코딩테스트 2024.03.28

[백준][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] 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

[백준][Python] 2422 한윤정이 이탈리아에 가서 아이스크림을 사먹는데

🍦 https://www.acmicpc.net/problem/2422 2422번: 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 첫째 줄에 정수 N과 M이 주어진다. N은 아이스크림 종류의 수이고, M은 섞어먹으면 안 되는 조합의 개수이다. 아래 M개의 줄에는 섞어먹으면 안 되는 조합의 번호가 주어진다. 같은 조합은 두 번 www.acmicpc.net 내 풀이 from itertools import combinations N, M = map(int, input().split()) do_not_mix = [[] for _ in range(N+1)] icecream = [x for x in range(1, N+1)] three_icecream = [] ans = 0 for i in combinations(i..

코딩테스트 2024.03.11