본문 바로가기

코딩 테스트/백준 파이썬 문제 풀이

[백준 2292번 파이썬] 벌집

https://www.acmicpc.net/problem/2292

 

이번 문제는 꽤 복잡해 보이는 수식을 직접 찾아내야 하는 문제이다

일단 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 값을 출력해주면 정답이 된다