λ¬Έμ
λ°±μ€ μ¨λΌμΈ μ μ§ - 2331λ²
νμ΄ κ³Όμ
κ·μΉμ λ°λΌ μμ±λλ μ«μλ€μ λͺ¨λ νμνλ©° μ΅μ’
μ μΌλ‘ λ°λ³΅λλ μμ΄μ μ μΈν λλ¨Έμ§ μ«μλ€μ κ°μλ₯Ό ꡬνλ λ¬Έμ μ
λλ€.
μ΄λ₯Ό μν΄ DFS
νμμ μννλ©° κ° μ«μλ€μ μ²μ λ°©λ¬Έ, λλ²μ§Έ λ°©λ¬Έ, μΈλ²μ§Έ λ°©λ¬Έ
μ΄λ κ² μΈ μ’
λ₯λ‘ κ΅¬λΆν΄μ€λλ€.
첫λ²μ§Έ λ°©λ¬Έμ κ²½μ°λ λ¬Έμ κ° μμ§λ§ λλ²μ§Έ λ°©λ¬Ένμλλ ν΄λΉ μ«μκ° μ€λ³΅λμ΄ λνλλ€λ μλ―Έμ΄λ―λ‘ λ°©λ¬Ένμλ₯Ό μ¦κΈ°μν¨ ν λ€μ νμμ μνν©λλ€.
μ΄λ κ°μ₯ μ²μ μΈλ²μ§Έ λ°©λ¬Έλλ μ«μκ° λνλλ κ²½μ° μ΄νμ μ«μλ€μ λλ€μ κ²ΉμΉκ² λλ―λ‘ νμμ κ³μ μνν νμμμ΄ λ°λ‘ μ’
λ£ν΄μ£Όλ©΄ λ©λλ€.
μ½λ
import sys
sys.setrecursionlimit(10**6)
A, P = list(map(int, sys.stdin.readline().split()))
def dfs(here, log):
if log[here] >= 2:
return
log[here] += 1
new_value = 0
for d in str(here):
new_value += int(d) ** P
if new_value not in log:
log[new_value] = 0
dfs(new_value, log)
def solution():
log = {A: 0}
dfs(A, log)
# 1λ²λ§ λ°κ²¬λκ±° μΉ΄μ΄νΈ
ans = 0
for val in log.values():
if val == 1:
ans += 1
return ans
print(solution())
'π algorithm > boj' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
BOJ 1781 - μ»΅λΌλ©΄ (0) | 2021.06.07 |
---|---|
BOJ 6118 - μ¨λ°κΌμ§ (0) | 2021.06.07 |
BOJ 4889 - μμ μ μΈ λ¬Έμμ΄ (0) | 2021.06.07 |
BOJ 4811 - μμ½ (0) | 2021.06.07 |
BOJ 5980 - Corn Maze (0) | 2021.06.07 |
π¬ λκΈ