코드1 (등차수열 합공식 사용)
n = int(input())
cnt = 1
while 1:
if 1 + 3*(cnt-1)*cnt>=n: # 등차수열의 합공식 사용
break
cnt += 1
print(cnt)
등차수열의 합공식을 이용해서 그 개수보다 아래면 cnt를 출력해주는 방식으로 했다. 그런데 이보다 더 직관적으로 만들어보면 아래와 같다
코드2 (6의 배수 더해주기)
n = int(input())
house = 1 # 벌집의 개수
cnt = 1 # 반복되는 횟수
while house < n: # n보다 벌집의 개수가 작을 때까지 반복
house += 6*cnt # 6의 배수를 곱해준다.
cnt += 1
print(cnt)
우선 문제를 쉽게 이해하기 위해 시각화하고, 해결할 때 복잡하게 생각하지 않는 게 중요한 것 같다.
'백준' 카테고리의 다른 글
[백준] 14940번 쉬운 최단거리 파이썬 코드 (1) | 2024.01.25 |
---|---|
[백준] 8879번 올림픽 파이썬 코드 (0) | 2024.01.25 |
[백준] 10431번 줄세우기 파이썬 코드 (0) | 2024.01.24 |
[백준] 1647번 도시 분할 계획 파이썬 코드 (0) | 2024.01.22 |
[백준] 14621번 나만 안되는 연애 파이썬 코드 (0) | 2024.01.22 |