From f2807266007d842b9e2079e5e3c634bb5df17454 Mon Sep 17 00:00:00 2001 From: sm4640 Date: Thu, 15 Jan 2026 14:00:48 +0900 Subject: [PATCH] =?UTF-8?q?2292-b2=20=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workbook_8708/2292-b2.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 workbook_8708/2292-b2.py diff --git a/workbook_8708/2292-b2.py b/workbook_8708/2292-b2.py new file mode 100644 index 0000000..d3a64a0 --- /dev/null +++ b/workbook_8708/2292-b2.py @@ -0,0 +1,27 @@ +# 벌집 + +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이다. +""" \ No newline at end of file