27 lines
794 B
Python
27 lines
794 B
Python
# 벌집
|
|
|
|
import sys
|
|
from math import ceil, sqrt
|
|
|
|
input = sys.stdin.readline
|
|
|
|
def solution():
|
|
n = int(input().rstrip())
|
|
print(ceil(((sqrt(1+(4/3)*(n-1)))-1)/2)+1)
|
|
return
|
|
|
|
|
|
solution()
|
|
|
|
|
|
|
|
"""
|
|
걸린 시간: 50분..(키보드로 식 계산하려다 보니 헷갈림)
|
|
|
|
해설: 6*1, 6*2, 6*3, 6*4 ... 겉껍질의 개수가 이렇게 증가하는데 몇 번째 껍질에 있느냐가 1에서 그 방까지
|
|
도달에 필요한 개수이다.
|
|
1 7 19 37 61 => 0 6 18 36 60=> 0 1 3 6 10 => n <= 6k(k+1)/2 + 1
|
|
k^2 + k - (n-1)/3 = 0을 만족하는 값 k보다 크거나 같은 정수를 구하면 된다.
|
|
result = ceil(((sqrt(1+(4/3)*(n-1)))-1)/2)
|
|
k번째 껍질에 있다는 뜻이고, 1이 있는 곳을 0번째 껍질이라고 가정하고 계산했기 때문에 답은 result+1이다.
|
|
""" |