728x90
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์
๋ ์ ์ left์ right๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. left๋ถํฐ right๊น์ง์ ๋ชจ๋ ์๋ค ์ค์์, ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ ์๋ ๋ํ๊ณ , ์ฝ์์ ๊ฐ์๊ฐ ํ์์ธ ์๋ ๋บ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 1 ≤ left ≤ right ≤ 1,000
์ ์ถ๋ ฅ ์
| left | right | result |
| 13 | 17 | 43 |
| 24 | 27 | 52 |
๋ฌธ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1 - ๋ค์ ํ๋ 13๋ถํฐ 17๊น์ง์ ์๋ค์ ์ฝ์๋ฅผ ๋ชจ๋ ๋ํ๋ธ ๊ฒ์ ๋๋ค.
| ์ | ์ฝ์ | ์ฝ์์ ๊ฐ์ |
| 13 | 1, 13 | 2 |
| 14 | 1, 2, 7, 14 | 4 |
| 15 | 1, 3, 5, 15 | 4 |
| 16 | 1, 2, 4, 8, 16 | 5 |
| 17 | 1, 17 | 2 |
๋ฐ๋ผ์, 13 + 14 + 15 - 16 + 17 = 43์ return ํด์ผ ํฉ๋๋ค.
ํ์ด
- left๋ถํฐ right๊น์ง ๋ฐ๋ณตํ๋ค.
- ์ฝ์์ ๊ฐ์๋ฅผ ์นด์ดํธ ํ๊ธฐ ์ํ ๋ณ์๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- i์ผ ๋, ํด๋น ์์ ์ฝ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด 1๋ถํฐ i๊น์ง ๋ฐ๋ณต๋ฌธ์ ์์ฑํ๋ค.
- ์ฝ์๊ฐ ๋ง์ผ๋ฉด ์นด์ดํธ ํ๋ค.
- ์ฝ์์ ๊ฐ์ ์นด์ดํธ๊ฐ ๋๋ฌ์ผ๋ฉด ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ์ง ํ์์ธ์ง ํ๋จํ๊ณ answer์ i๋ฅผ ๋ํ๊ฑฐ๋ ๋บ๋ค.
- ๋ค์, left์ ๋ค์ ์๋ ์์ ๋๊ฐ์ด ๋ฐ๋ณตํ๋ค.
Solution
def solution(left, right):
answer = 0
for i in range(left, right + 1):
cnt = 0
for j in range(1, i + 1):
if i % j == 0:
cnt += 1
if cnt % 2 == 0:
answer += i
else:
answer -= i
return answer
Another Solution
def solution(left, right):
answer = 0
for i in range(left,right+1):
if int(i**0.5)==i**0.5:
answer -= i
else:
answer += i
return answer728x90
'๐งฉ Algorithm > [Programmers] Level 1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Programmers ์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ (Python/Level 1) (0) | 2022.08.22 |
|---|---|
| Programmers ์๋ ์ซ์ ๋ํ๊ธฐ (Python/Level 1) (0) | 2022.07.31 |
| Programmers 2016๋ (Python/Level 1) (0) | 2022.07.26 |
| Programmers K๋ฒ์งธ์ (Python/Level 1) (0) | 2022.07.25 |
| Programmers ๋๋จธ์ง๊ฐ 1์ด ๋๋ ์ ์ฐพ๊ธฐ (Python/Level 1) (0) | 2022.07.24 |