이번 문제는 꽤 복잡해 보이는 수식을 직접 찾아내야 하는 문제이다
일단 1이라고 적혀 있는 정가운데에서 입력값이 적혀 있는 위치까지
몇 칸을 지나가는지만 출력하는 코드를 작성하면 된다
num = int(input())
nums_bee = 1
count = 1
while num > nums_bee:
nums_bee += 6 * count
count += 1
print(count)
문제에 나와 있는 벌집 문양에서 1부터 7번 방 방향으로 나 있는 모든 방을 확인해 보면
1 - 7 - 19 - 37 - 61
즉, 숫자들 사이의 차이가
6 - 12 - 18 - 24
만큼 나게 된다
이렇게 되면 숫자들 사이에 6의 배수라는 규칙을 발견할 수 있고
위의 정답 코드는 이런 성질을 이용해서 작성한 것이다
6의 배수를 계속 수행하다가 원하는 칸 번호를 넘어가면 작동을 멈추는데,
원하는 칸 번호가 멈춘 칸과 동일 선상에 있다는 의미이기 때문에
그럴 때 바로 count 값을 출력해주면 정답이 된다
'코딩 테스트 > 백준 파이썬 문제 풀이' 카테고리의 다른 글
[백준 2869번 파이썬] 달팽이는 올라가고 싶다 (0) | 2022.04.02 |
---|---|
[백준 1193번 파이썬] 분수찾기 (0) | 2022.04.02 |
[백준 1712번 파이썬] 손익분기점 (0) | 2022.04.02 |
[백준 1316번 파이썬] 그룹 단어 체커 (0) | 2022.04.02 |
[백준 2941번 파이썬] 크로아티아 알파벳 (0) | 2022.04.02 |