반응형
https://www.acmicpc.net/problem/2292
내 답안
import sys
input = sys.stdin.readline
N = int(input())
if N == 1:
print(1)
else:
for i in range(1, N):
if 3*(i**2) - 3*i + 2 <= N < 3*((i+1)**2) - 3 *(i+1) + 2:
print(i+1)
break
1, 2, 8, 20, 38 ... 일 때 방이 하나씩 늘어 나는 걸 알 수 있다.
계차 수열의 일반 항을 구하면
이렇게 나오기 때문에
입력하는 수가 몇 번째 방에 있는지 수열의 일반 항을 통해 쉽게 구할 수 있다.
반응형
'BOJ > Python' 카테고리의 다른 글
백준 7576번 토마토 파이썬 BFS (0) | 2022.03.30 |
---|---|
백준 1259번 팰린드롬수 파이썬 (0) | 2022.03.29 |
백준 2164번 카드2 파이썬 (0) | 2022.03.25 |
백준 10816번 숫자 카드 2 파이썬 (0) | 2022.03.23 |
백준 11055번 가장 큰 증가 부분 수열 파이썬 (0) | 2022.03.22 |