Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 1292번- '쉽게 푸는 문제' (PYTHON 풀이) 본문
문제:

숫자를 1223334444... 이런식으로 각 수와 동일한 개수로 수열을 만들었을 때, 시작 구간과 종료 구간 사이의 값을 전부 더해서 출력하면 되는 문제이다.
풀이:
a, b = map(int, input().split())
arr = []
x = 1
while len(arr) < b:
arr.extend([x] * x)
x += 1
print(sum(arr[a-1:b]))
처음에는 범위만큼 문자열로 변환해서 각 자릿수를 int로 바꾼 뒤 계산하는 것을 생각했는데 이 경우 두 자릿수가 됐을 땐 의도대로 계산이 되지 않는 문제가 발생하고, 필요없는 공간까지 할당해서 메모리를 잡아먹는다.
어떤 방식으로 해결할지 감이 안 잡혀서 서치를 하니 extend를 활용하는 것을 확인했다. 또한, while문 안에 배열의 크기보다 종료 지점이 작을 경우에만 수열을 만들어서 필요없는 값까지 할당하는 것을 방지하였다. 이렇게 x 값 즉, 개수를 의미하는 것을 1씩 늘려주면서 조절하고 마지막에 b보다 배열의 수가 커질 경우 while문을 탈출해서 시작 지점과 종료 지점까지의 값을 모두 더해 출력하면 된다.
'CODING 💻' 카테고리의 다른 글
| 백준 10987번- '모음의 개수' (PYTHON 풀이) (0) | 2026.01.28 |
|---|---|
| 백준 1453번- '피시방 알바' (PYTHON 풀이) (0) | 2026.01.27 |
| 백준 1371번- '가장 많은 글자' (PYTHON 풀이) (0) | 2026.01.25 |
| 백준 10179번- '쿠폰' (PYTHON 풀이) (0) | 2026.01.24 |
| 백준 3058번- '짝수를 찾아라' (PYTHON 풀이) (1) | 2026.01.23 |
