본문 바로가기
IT/알고리즘

1일 N알고리즘 - #16

by Sungjun_ 2020. 5. 18.

문제

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

 

2292번: 벌집

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

www.acmicpc.net

문제는 위 사이트를 참고해주세요.

 


풀이

N = int(input())  # 숫자 입력 받음
x = 1  # 시작 값 1
inc = 6  # 중가 값
count = 1  # 지나가는 방 개수 카운트
if N == 1:  # N=1이면 바로 1출력
    print(1)
else:
    while True:  # while로 무한루프 돌게함
        x = x + inc  # 한 방씩 만들어 질 때 7 19 37 61.. , 그 차이가 6 12 18 24 ..
        count += 1  # 이웃 방이 생겼으므로 +1
        if N <= x:  # N이 x보다 작으면 이미 만들어진 방에 N 값이 있다는 뜻
            print(count)  # 방 개수 출력
            break  # while문 종료
        inc += 6  # if문에 걸리지 않으면 inc를 6 증가 시켜줌

 

주석을 참고해주세요.

배열을 사용해서 풀려고하다가 오히려 더 헤맸습니다.

배열로 풀긴 풀었는데 다 메모리 초과가...

간단한 방법이 있는데 자꾸 어렵게 풀게되네요.

 


결과

 

결과 화면

 

'IT > 알고리즘' 카테고리의 다른 글

1일 N알고리즘 - #18  (0) 2020.05.20
1일 N알고리즘 - #17  (0) 2020.05.19
1일 N알고리즘 - #15  (0) 2020.05.18
1일 N알고리즘 - #14  (0) 2020.05.17
1일 N알고리즘 - #13  (0) 2020.05.16

댓글