본문 바로가기

알고리즘18

백준 골드1 11689번 Python 틀린 문제https://www.acmicpc.net/problem/11689 풀이import mathn = int(input())# 소인수 분해 # 소인수 분해한 결과를 오름차순으로 정렬, set 을 이용해 중복이 없게 처리def get_unique_prime_factors(n: int) -> list[int]: """ 주어진 양의 정수 n을 소인수 분해하여 중복 없이 오름차순으로 정렬된 소인수 리스트를 반환합니다. """ if n 1: unique_factors.add(n) # 5. set을 list로 변환하고 오름차순으로 정렬하여 반환합니다. return sorted(list(unique_factors))num = get_unique.. 2025. 11. 6.
백준 육각수 시간 복잡도 관련 쓰기 (temp!) https://www.acmicpc.net/problem/1229 2025. 11. 5.
백준 플래5 1019번 Python 풀이 문제 https://www.acmicpc.net/problem/1019정답import sys # 0부터 9까지 각 숫자의 개수를 저장할 배열ans = [0] * 10def calc(n, ten): """ n이라는 숫자 자체에 포함된 각 자리수를 ten 만큼 곱해서 ans에 더합니다. (예: calc(123, 1) -> ans[1]+=1, ans[2]+=1, ans[3]+=1) (예: calc(12, 10) -> ans[1]+=10, ans[2]+=10) """ while n > 0: ans[n % 10] += ten n = n // 10def solve(start, end, ten): """ [start, end] 범위 내의 숫자.. 2025. 11. 5.
백준 9252 파이썬 python 재귀 풀이 백준 9252번을 탑다운 방식(재귀) 로 풀어봤습니다. findAnswer 함수에서 return 문의 위치를 처음에 if 문 안에 잘못 써서 디버깅에 어려움을 겪었습니다.. (vscode 복사 붙여넣기 과정에서 잘못됨) AI 에게 물어봐도 바텀업 방식(반복문) 만 알려주고 블로그에도 재귀 풀이는 보이지 않아, 재귀 풀이를 업로드 합니다! import sys input = sys.stdin.readline sys.setrecursionlimit(10**6)first = input().strip()second = input().strip() dp = [[] for i in range(len(first))]for i in range(len(first)): for j in range(len(second).. 2025. 8. 2.
백준 17141 파이썬 import sys from collections import deque from itertools import combinationsinput = sys.stdin.readlineN, M = map(int, input().split())matrix = [[] for _ in range(N)]visited = [[] for _ in range(N)]for i in range(N): row = list(map(int, input().split())) matrix[i] = row visited[i] = [False for _ in range(N)]possible = []dx = [1,-1,0,0]dy = [0,0,1,-1]for i in range(N): for j in range(N).. 2025. 7. 16.
백준 13398 연속합2 파이썬 Python py (재귀 풀이) 13398번 풀이를 블로그에 찾아보니, 대부분 반복문 DP 풀이만 나오는데 나는 개인적으로 재귀 DP 가 더 편해서 재귀로 풀어 보았다. import syssys.setrecursionlimit(10**6)N = int(input())arr = list(map(int, input().split()))dp = [[float('-inf')] * 2 for _ in range(len(arr))]def solve(i, c): if dp[i][c] != float('-inf'): return dp[i][c] if i == 0: if c == 0: dp[i][c] = arr[i] return dp[i][c] else: .. 2025. 7. 3.