반응형 Problem Solving/BOJ225 [BOJ][Python]1904 풀이 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net n = int(input()) if n == 1 or n == 2 or n == 3: print(n) else: dp = [0 for _ in range(n+1)] dp[1], dp[2] = 1, 2 for i in range(3, n+1): dp[i] = (dp[i-1] + dp[i-2])%15746 print(dp[n]) 뻔한 dp 문제입니다. n 범위 때문에 index 에러가 나니까 예외처리를 하.. 2023. 7. 11. [BOJ][Python]1347 풀이 https://www.acmicpc.net/problem/1347 1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net def f(mx, my): for i in range(my+1): for j in range(mx+1): labyrinth = [['#' for _ in range(mx+1)] for _ in range(my+1)] posx, posy = j, i labyrinth[posy][posx] = '.' for k in route: if 0 2023. 7. 9. [BOJ][Python]1291 풀이 https://www.acmicpc.net/problem/1291 1291번: 이면수와 임현수 11은 메갈루젼 문명의 어비스 오엘 우테에 속하지만 각 자리수의 총합이 1+1=2, 즉 짝수이므로 이면수가 아니고 chicken number혹은 starcraft number도 아니고 합성수도 아니므로 임현수가 아니다. 고로 www.acmicpc.net n = int(input()) ans = [] def factorization(num, prime_factors): if num == 1: return prime_factors for i in range(2, num+1): if num % i == 0: factorization(num//i, prime_factors) prime_factors.append(i) .. 2023. 7. 8. [BOJ][Python]1270 풀이 1270번: 전쟁 - 땅따먹기 첫째 줄에는 땅의 개수 n(n t[0]//2: print(major) else: print('SYJKGW') n = int(ssr()) for _ in range(n): t = list(map(int, ssr().split())) ans = boyer_moore_majority(t) 이 문제를 과반수 알고리즘을 이용해 푼 코드입니다. 알고리즘을 간단히 소개하자면, 배열의 원소를 하나씩 확인하면서 과반수 후보를 갱신하고 다음에 나올 원소가 현재의 과반수 후보와 같다면 카운트를 올리고 다르다면 카운트를 내립니다. 이 때 카운트가 이미 0이라면 후보를 변경하는 과정을 거칩니다. 예를 들어서 예제 1의 첫번째 케이스를 확인해보겠습니다. 1 2 3 1 2 3 1 2 3 1 의 입력이.. 2023. 7. 7. [BOJ][Python]1213 풀이 1213번: 팰린드롬 만들기첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.www.acmicpc.netfrom collections import defaultdicts = input()odd = 0alphabets = defaultdict(int)ans, mid = '', ''for i in s: alphabets[i] += 1 if len(s) % 2 == 0: for alphabet, cnt in sorted(alphabets.items()): ans += alphabet*(cnt//2) if cnt % 2 == 1: odd +=.. 2023. 7. 5. [BOJ][Python]1166 풀이 https://www.acmicpc.net/problem/1166 1166번: 선물 민식이는 아이들에게 선물할 같은 크기의 작은 박스를 N개 가지고 있다. 모든 작은 박스는 정육면체이고, 크기는 A × A × A 이다. 민식이는 이 작은 박스를 크기가 L × W × H 인 직육면체 박스에 www.acmicpc.net n, l, w, h = map(int, input().split()) top, bot = min(l, w, h), 0 for _ in range(100): mid = (top + bot)/2 if (l//mid)*(w//mid)*(h//mid) >= n: bot = mid else: top = mid print(f'{top:.10f}') 개인적으로 마음에 들지 않는 문제입니다. 사실 해당 문.. 2023. 7. 4. [BOJ][Python]1072 풀이 https://www.acmicpc.net/problem/1072 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net x, y = map(int, input().split()) z = y*100//x if z >= 99: print(-1) else: ans = 0 t, b = x, 0 while b < t: mid = (t + b)//2 if z < (y+mid)*100//(x+mid): t = mid ans = t else: b = mid + 1 ans = b print(ans) 이번 문제는 알아두면 좋.. 2023. 7. 3. [BOJ][Python]1063 풀이 https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net def f(k, s, o): if k[0]+ob[o][0] == s[0] and k[1]+ob[o][1] == s[1]: if 0 2023. 7. 2. [BOJ][Python]1021 풀이 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net from collections import deque n, m = map(int, input().split()) o = list(map(int, input().split())) q = deque([i+1 for i in range(n)]) ans = 0 for i in range(m): t = q.index(o[i]) if t < len(q)/2: ans += t q.rotate(-t) q.p.. 2023. 7. 1. [BOJ][Python]1004 풀이 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net import sys ssr = sys.stdin.readline t = int(ssr()) for _ in range(t): points = list(map(int, ssr().split())) n = int(ssr()) planets =[list(map(int, ssr().split())) for _ in range(n)] ans = 0 for i in range(n): tmp =.. 2023. 6. 29. 이전 1 ··· 3 4 5 6 7 8 9 ··· 23 다음 반응형