https://www.acmicpc.net/problem/2292
N = int(input())
nums = [1]
for i in range(1, N+1):
if N in nums:
print(i)
break
nums += list(range(nums[-1]+1, nums[-1]+6*i+1))
N = int(input())
limit, y = 1, 1
while True:
if N <= limit:
print(y)
break
y += 1
limit += 6 * (y-1)
y
: 층 수, limit
: 해당 층의 최대값y
가 1 증가; limit
은 6*(y-1)만큼 증가N
이 limit
이하이다 == N은 해당 층에 속한다N = int(input())
y, limit = 1, 1
while N > limit:
y += 1
limit += 6 * (y-1)
print(y)
While True
를 While 탈출 조건
으로 변경했다.N = int(input())
y = 1
while N > 3*y*(y-1)+1:
y += 1
print(y)
위 규칙에 아래 식을 적용하면,
N = int(input())
y = 1
for i in range(N):
y += i*6
if N <= y:
print(i+1)
break
전역이 두 달 정도 남았을 때, 한창 사지방에서 진로에 관한 고민을 많이 했다.
그러던 중 친구가 전역하고 같이 우테코에 지원하자고 했고,
그렇게 백준을 시작했다.
자기 전 사지방에서 백준 문제를 인쇄해서 아침에 사무실에 가져갔고,
일과 시간 중 시간이 있을 때 백준 문제를 고민했던 것 같다.
궁금해서 지금까지의 제출 기록을 살펴보았는데,
첫 제출이 2월 21일이고, 3월 9일까지 97번 제출을 했다.
당시 나름 열심히 했던 것 같다.
그러다가 이 2292: 벌집과 1712: 손익 분기점 문제에서 막혔고,
이후에는 촉박하게 자격증 시험을 준비 하느라 더 이상 백준을 풀지 못하고 전역했다.
오늘 버스에서 이 문제를 고민하는데, 사지방에서 이 문제를 똑같이 고민하던 기억이 났다.
이 문제를 풀지 못해 스스로에게 화가 나있었는데, 친구가 내게 다가와 쉽게 생각하라며 힌트를 주려고 했다.
나는 내가 알아서 하겠다고 예민하게 반응했었는데, 전역하고 나서도 그 날이 두고두고 후회됐고, 지금도 후회된다.
참 좋은 친구였는데, 내가 보여줬던 한심한 모습들 때문에 편하게 연락을 하지 못하겠다.
보고싶다.