728x90
반응형
문제 링크
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
정답 코드는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
|
import math
def solve():
a = int(input())
n = math.ceil(math.log2(a))
x = 2**n - a
print(2**n - 2 * x)
solve()
|
cs |
이 문제는 단순하게 queue 에 넣었다가 빼는 방식을 이용하면 풀려야 하는 문제입니다.
python 에서 list는 queue 가 아니기 때문에 아래 영상에서 처음 시도한 것처럼
list를 이용해서 구현하게 되면 시간초과가 발생하게 됩니다.
이 문제는 queue를 사용할 줄 아는가를 묻는 문제인 것이고, 잘 사용했다면 분명히 풀렸을 것입니다.
728x90
저도 queue를 사용하여 풀 수도 있었지만, 조금 다르게 접근해보았습니다.
혹시라도 규칙성이 있는 것은 아닐지 한 번 찾아본 것이죠.
다행스럽게도 어떤 규칙성을 발견할 수 있었고, 그 규칙이 바로 정답 코드입니다.
어떤 규칙성인지, 어떻게 그런 규칙성을 발견하였는지는 아래 영상 참고 바랍니다.
www.youtube.com/watch?v=RUoJt2VKGk0
저작권 라이선스: CC BY (출처만 표시하면 자유롭게 이용 가능)
728x90
반응형
'백준(BOJ) 문제 풀이' 카테고리의 다른 글
백준 2263번 문제(트리의 순회) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.03 |
---|---|
백준 2231번 문제(분해합) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.03 |
백준 2018번 문제(수들의 합 5) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.03 |
백준 1976번 문제(여행 가자) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.03 |
백준 1546번 문제(평균) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.03 |