
- 티어 : Bronze 2
- 정답여부 :
정답- 알고리즘 유형 :
수학- 시간 제한 :
2초

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.
13
3
입력한 숫자의 벌집 위치를 출력하면 되는 문제
규칙을 생각해보자
1
2~7 6개 1칸
8~19 12개 2칸
20~37 18개 3칸
이정도면 어느 정도의 규칙이 보임
1. 입력받은 숫자를 for문으로 돌림
2. 벌꿀의 시작은 1로 num에 1부터 시작하여 숫자들을 넣어줌
3. 만약 num이 N보다 크면 멈추고 i는 0부터 시작하니까 1를 더해줌
pythonN = int(input()) num = 1 for i in range(N): num += i*6 if num >= N: print(i+1) break
없음
없음
수학문제니 규칙을 먼저 찾아야겠다..아 머리 아프아..