좌충우돌 개발자의 길

백준 알고리즘 | 2292번 (벌집) | 파이썬 본문

CODING TEST/백준

백준 알고리즘 | 2292번 (벌집) | 파이썬

sustronaut 2021. 7. 11. 19:40

2292번 (벌집)

  • 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.
room = int(input())

n = 0 #n=1도 가능
sum = 1  # 1번 방은 규칙에 포함이 안되어서 먼저 저장

while 1:

    if(room > sum):
        # 한바퀴늘어날때 6개씩 방이 증가한다
        sum = sum + 6*n
        n += 1
    else:
        break

if(1 < room < 8):
    print(2)
elif(room == 1):
    print(1)
else:
    print(n)
#컴파일러 확인 코드
room = int(input())


n = 0
sum = 1
while 1:
    print("n :", n)
    print("sum :", sum, "room :", room)

    if(room > sum):

        print("sum = sum + 6*n")
        print(sum, "=", sum, "+ 6*", n)
        sum = sum + 6*n
        print("최종 sum", sum)
        n += 1
        print("if n :", n)
    else:
        print("else n :", n)
        break

if(1 < room < 8):
    print(2)
elif(room == 1):
    print(1)
else:
    print(n)