반응형
1292
https://www.acmicpc.net/problem/1292
[정답1]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import sys
a, b = map(int, sys.stdin.readline().split())
c = 0
result = 0
for i in range(46):
for j in range(i):
c += 1
if c >= a:
result += i
if c == b:
break
if c == b:
break
print(result)
|
cs |
.
.
.
[풀이1]
B<=1000이라는 조건이 있는데
수열이 1, 2, 2, 3, 3, 3, ... , 45, 45, 45, 45....에서 1000번째를 맞이한다.
따라서 for문 한계점을 46으로 설정한다.
그 후 평범한 반복문.
a번째부터 더하고 b번째에 break 한다.
.
.
.
[정답2]
1
2
3
4
5
6
7
|
import sys
a, b = map(int, sys.stdin.readline().split())
c = []
for i in range(46):
for j in range(i):
c.append(i)
print(sum(c[a-1:b]))
|
cs |
.
.
.
[풀이2]
파이썬의 기능을 이용하면 간략화할 수 있다.
모든 수를 배열에 집어넣은 후 sum함수로 값을 출력한다.
푼 사람들의 정답을 참조했다.
p.s.
brute force로 해보고 안되면 시간을 줄일 수 있는 알고리즘을 생각해보자.
반응형
'백준 문제풀이' 카테고리의 다른 글
[백준 1158] 파이썬 : 요세푸스 문제 (0) | 2022.03.16 |
---|---|
[백준 11170] 파이썬 : 0의 개수 (0) | 2022.03.15 |
[백준 19947] 파이썬 : 투자의 귀재 배주형 (0) | 2022.03.12 |
[백준 24678] 파이썬 : 돌무더기 게임 1 (0) | 2022.03.12 |
[백준 2512] 파이썬 : 예산 (0) | 2022.03.07 |