링크 : https://www.acmicpc.net/problem/5622
- 문제


- 설계하기(접근방법)
1. 먼저 규칙을 파악한다.
첫번째 방은 1
두번째 방은 1 + 6 = 2 ~7
세번쨰 방은 1 + 6 + 12 = 8 ~19
네번째 방은 1 + 6 + 12 + 18 = 20 ~ 37
즉 첫번째 를 제외하고 6씩 증가하는 계차수열로 이루어져있다
2. 숫자를 입력받는다. = n
3. 첫번째 항을 제외하고, for문을 통해 sum에 누적해서 6*i를 더해나간다.
4. sum이 n이랑 같거나 커지는 순간 = 그 방의 위치를 나타낸다
5. i 값을 출력한다.
- 코드(출력)
n = int(input()) # 19
sum = 1
i = 1
while (i):
if (n == 1):
i = 1
break
if (sum >= n):
break
sum += 6 * i # 7, 19
i += 1
print(i)
- 얻어갈 부분
1. 처음에 계차수열 일반항공식을 통해 접근하려고 했는데, 그저 for문의 특성을 이용하여 간단하게 풀 수 있었다.
2. sum이 n보다 클 때인지, 크거나 같을 때인지를 정확히 구분하여 코딩해야 할거 같다.
'알고리즘(백준) > 기타' 카테고리의 다른 글
| [백준] 1193번 : 분수찾기 - python (0) | 2023.02.05 |
|---|---|
| [알고리즘/] 번 : - python (0) | 2023.02.05 |
| [백준] 2941 번 : 크로아티아 알파벳 - python (0) | 2023.02.05 |
| [백준] 1316 번 : 그룹 단어 체커 - python (0) | 2023.02.04 |
| [백준] 5622 번 : 다이얼 - python (0) | 2023.01.29 |