Python/Beakjoon

2292번: 벌집

hyunjoo 2021. 7. 18. 05:22

2292번: 벌집 (acmicpc.net)

 

2292번: 벌집

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

www.acmicpc.net

1/2~7/8~19/20~37/38~61/62~92/... 이런식으로 벌집 구간 나눌 수 있음.

증가 폭은 6의 배수(6,12,18,24...)

구간을 나누는 기준이되는 수를 리스트에 저장

 

1번째 시도)

 

N = int(input())
A=[1]

for i in range(0, 10000000):
        A.append(A[i] + (i+1) * 6)

for i in range(0, 10000000):
    if A[i] < N < A[i + 1]:
        count=i+1
    elif A[i]==N:
        count=i
    elif A[i+1]==N:
        count=i


print(count+1)

 

>>메모리초과...

 

2번째 시도)

N = int(input())

count=1
if N==1:
    print(1)
else:
    for i in range(1,N):
        count+=6*i
        if N<=count:
            print(i+1)
            break

>>정답

 

 

 

 

반응형