728x90
https://www.acmicpc.net/problem/10407
24/01/20
수학 문제로, 찍어서 맞출 수도 있으나 여기서는 증명을 소개하도록 하겠다.
문제 접근 방식:
결론만 이야기 하자면, $H = 1$일 때는 나머지가 $2$이고, 그 외에는 $1$이다.
일단 $H=1$일 때는 2타워의 값은 $2$이므로, $3$으로 나눈 나머지가 $2$이다.
$2$를 짝수 번 곱하면 그 숫자를 $3$으로 나눈 나머지는 $1$이다.
그 이유는 나머지 연산의 성질에 의하여, $2 \times 2 \times \cdots \times 2 \equiv 4 \times \cdots \times 4 \equiv 1 \times \cdots \times 1 \equiv 1$이기 때문이다.
근데 $H > 1$일때는 $2$를 짝수 번 곱하는 것이므로, 그 숫자가 뭐든 간에 $3$으로 나눈 나머지가 $1$임을 알 수 있다.
따라서, 이를 그대로 구현하면 된다.
아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더 보기를 누르면 확인할 수 있다.
더보기
H = int(input())
if H == 1:
print(2)
else:
print(1)
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[Python] 11688번 최소공배수 찾기 (0) | 2024.02.18 |
---|---|
[Python] 17504번 제리와 톰 2 (0) | 2024.02.18 |
[Python] 1325번 효율적인 해킹 (0) | 2024.02.17 |
[Python] 26260번 이가 빠진 이진 트리 (0) | 2024.02.17 |
[Python] 9024번 두 수의 합 (0) | 2024.02.13 |