규칙을 찾으려고 이틀째 생각했다 물론 잠깐씩이긴 했지만ㅎ
이틀째에 드디어 규칙이 보이기 시작했고, 달팽이 문제처럼 x를 이항해서 풀려고 했는데 규칙이 2차방정식이라 실패.. 규칙을 어캐 적용할까 고민하다가 구글링으로 사알짝만 참고! 규칙을 세는 방법만 적용했고 나머진 내 머리로 풀어보았다. 머리를 쥐어짜며 실패하다 성공했을 때의 기쁨이란..🥹 이 맛에 코테 문제 풀징ㅎ
num = int(input())
room = 1
count = 1
while num > room:
room += count*6
count += 1
print(count)
규칙을 찾으려고 애썼고, 우선 벌집줄(가운데를 기준으로 육각형 모양으로 감싸는 줄)들끼리 묶어보았다.

이렇게 말이다. 그랬더니,
1. 1
2. 2~7
3. 8~19
4. 20~37
5. 38~61
... 이렇게 묶였고, 마지막인 1, 7, 19, 37, 61을 기준으로 보자.
그러면 6, 12, 18, 24씩 증가하는 것을 알 수 있다!
공차도 수열이기에 2차방정식이 나왔던 것이다..
자 그러면 어떻게 이 규칙을 활용할 것인가?
나는 우선 규칙을 코드로 만들기 전에 저 규칙이 맞는지를, 즉 쓰일 방법이 있는지를 생각했다.
우리는 벌집방을 몇 번을 지나가는지를 구해야 한다. 예제에 있는 애들을 따라 해보니, 지나가는 횟수는 딱 구하고자 하는 수가 속한 줄 번호와 동일한 것을 발견했다!!!
아하 그러면 나는 입력받은 번호가 몇 번째 줄에 묶이는지를 구하면 되겠군!
여기가 난관이었다..
6을 뭔가 활용해야 되는 건 알겠는데 더 이상은 정말 모르겠더라...
결국 검색을 했고ㅠ 우리가 구하고자 하는, 지나가는 횟수를 처음에 1로 두고 하나씩 증가시키면서 6을 곱하더라!!! wow 너무 똑똑하다....
규칙을 어떻게 적용할지와 표현할지를 알았으니 정답인 코드를 한 줄씩 봐보자.
num = int(input())
room = 1
count = 1
while num > room:
room += count*6
count += 1
print(count)

오 잘 풀었나보다 시간이 짧다 짧아 😎
백준 재밌다 히히