문제 : https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
Sol )
- 중앙 1에서부터 cnt가 시작되기 때문에 초기값 1
- 처음 육각형 (2~7)과 다음 육각형 (8~19)의 크기 차이는 6.
- 최초 육각형 까지의 거리 = 6
- n이 1보다 클 동안 반복하면서 다음 껍질로 이동한다. 이동 1회에 움직일 수 있는 최대 범위(초기값 = 6) 씩 n에서 빼기.
- 한 껍질 바깥으로 이동할 때마다 거리는 6씩 증가, 이동 횟수(cnt)는 1씩 증가시킨다.
- n이 1보다 작다면 목표값까지 이동 가능한 횟수이기 때문에 그때의 cnt를 출력
소스코드 )
n = int(input())
i = 1
cnt = 1
if n == 1:
print(1)
else:
while n>1:
cnt +=1
n -= 6*i
i+=1
print(cnt)
'Problem Solving > boj.kr (Python)' 카테고리의 다른 글
[BOJ / 파이썬] 2869 달팽이는 올라가고 싶다 (0) | 2022.07.11 |
---|---|
[BOJ / 파이썬] 1193 : 분수찾기 (0) | 2022.07.11 |
[BOJ / 파이썬] 1712 : 손익분기점 (0) | 2022.03.12 |
[BOJ / 파이썬] 1316 : 그룹 단어 체커 (0) | 2022.02.26 |
[BOJ / 파이썬] 2941 : 크로아티아 알파벳 (0) | 2022.02.26 |
댓글