https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net

1개) 1 ->1개
2개) 2,3,4,5,6,7 ->6개
3개) 8,9,10,..19 ->12개
4개) 20,21,.. 37 ->18개
5개) 38,39,.. 61 ->24개
6)
...
라는 규칙을 찾았다.
N=int(input())
cnt=1
while(N>1):
N-=6*cnt
cnt+=1
print(cnt)
성공!
n = int(input())
nums_pileup = 1 # 벌집의 개수, 1개부터 시작
cnt = 1
while n > nums_pileup :
nums_pileup += 6 * cnt # 벌집이 6의 배수로 증가
cnt += 1 # 반복문을 반복하는 횟수
print(cnt)
위는 다른 사람이 작성한 코드이다.
거의 비슷한데, 나는 벌집의 개수를 나타내는 변수를 따로 선언하지않고 N에서 6의 배수씩 감소하며 while문을 수행하도록 했다.
'Back-end > 백준(python)' 카테고리의 다른 글
[백준/python] 2869 달팽이는올라가고싶다: (0) | 2023.10.25 |
---|---|
★[백준/python] 1193 분수찾기: 규칙 찾아.. (0) | 2023.10.25 |
[백준/python] 11005 진법 변환 2: 문자열 결합에서의 +연산 (0) | 2023.10.25 |
[백준/python] 2745 진법변환: B진법->10진법 변환하기/ 문자열, reversed객체, join함수 (1) | 2023.10.25 |
[백준/python] 2903 중앙 이동 알고리즘: 수학적인 사고를 해보장.. (0) | 2023.10.25 |