백준3 2231. 분해합 첫 풀이 패스이지만 만족스럽지 못하다. 아무리 브루트 포스 문제라고 해도... 216의 생성자가 두자리 수 일리가 없는데, 1부터 타겟까지 돌며 찾아 나가는게 너무 아깝다.😭😩 뭔가 시작점을 효과적으로 설정할 수 있는 방법이 필요하다. def f(num): return num + sum(map(int, list(str(num)))) N = int(input()) ans = 0 for i in range(1, N+1): if f(i) == N: ans = i break print(ans) 최적화 풀이 각 자리수에 올 수 있는 최대 수는 9인 것을 생각해서, 타겟 숫자의 자리수*9를 계산해 시작점을 잡아줬다. 시작점을 잡아주지 않은 첫 풀이는 1440ms가 걸렸는데, 76ms로 줄였당 🥳 휴 속이 다 시원하.. 2022. 2. 6. 14502. 연구소 (0413) PASS from collections import deque import copy def bfs(arr): global virusInfo, maxV q = deque() for v in virusInfo: q.append(v) while q: dx = [0,1,0,-1] dy = [1,0,-1,0] si, sj = q.popleft() for k in range(4): ni = si + dx[k] nj = sj + dy[k] if 0 2020. 4. 13. [단계별로 풀어보기] 1차원 배열_All Pass fail better 하기 위해 다시 시작하는 애증의 알고리즘 실패를 쌓아 성공으로 만들고 만다 내가💪 쉬운 것부터 차근차근 다시. 10818. 최소, 최대 n = int(input()) nums = list(map(int, input().split())) for num in nums: if num > maxx : maxx = num if num maxx: maxx = num max_idx = i print(maxx) print(max_idx) 2577. 숫자의 개수 a = 1.. 2020. 4. 2. 이전 1 다음