ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ์ค๋ช
์ ์ ๋ฐฐ์ด numbers๊ฐ ์ฃผ์ด์ง๋๋ค. numbers์์ ์๋ก ๋ค๋ฅธ ์ธ๋ฑ์ค์ ์๋ ๋ ๊ฐ์ ์๋ฅผ ๋ฝ์ ๋ํด์ ๋ง๋ค ์ ์๋ ๋ชจ๋ ์๋ฅผ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- numbers์ ๊ธธ์ด๋ 2 ์ด์ 100 ์ดํ์
๋๋ค.
- numbers์ ๋ชจ๋ ์๋ 0 ์ด์ 100 ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
| numbers | result |
| [2, 1, 3, 4, 1] | [2 ,3, 4, 5, 6, 7] |
| [5, 0, 2, 7] | [2, 5, 7, 9, 12] |
๋ฌธ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- 2 = 1 + 1 ์ ๋๋ค. (1์ด numbers์ ๋ ๊ฐ ์์ต๋๋ค.)
- 3 = 2 + 1 ์ ๋๋ค.
- 4 = 1 + 3 ์ ๋๋ค.
- 5 = 1 + 4 = 2 + 3 ์ ๋๋ค.
- 6 = 2 + 4 ์ ๋๋ค.
- 7 = 3 + 4 ์ ๋๋ค.
- ๋ฐ๋ผ์ [2,3,4,5,6,7] ์ return ํด์ผ ํฉ๋๋ค.
๋ฌธ์ ํ์ด
- combinations์ ์ฌ์ฉํ๊ธฐ ์ํด itertools ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ importํ๋ค.
- combinations(iterable, r) : ์์๊ฐ ์๊ณ , ์ค๋ณต์ด ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋์ดํ๋ค. dataset(iterable)์์ 2๊ฐ๋ฅผ ๋ฝ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋ค.
- numbers์๋ [(2,1), (2,3), (2,4), (2,1), (1,3), (1,4)...]์ ๊ฐ์ด ์ ์ฅ์ด ๋๋ค.
- ๋ฐ๋ณต๋ฌธ์ผ๋ก [(2+1), (2+3), (2+4), .... ] ๊ฐ ์์๋ฅผ ๋ํ๊ธฐ ์ํด append๋ฅผ ์ฌ์ฉํด answer ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
- set์ผ๋ก ์ค๋ณต๋ ๊ฐ์ ์ ๊ฑฐํ๊ณ sorted๋ก ์ ๋ ฌํ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํ๋ค.
Solution
from itertools import combinations
def solution(numbers):
answer = []
numbers = list(combinations(numbers,2))
for a,b in numbers:
answer.append(a+b)
return sorted(list(set(answer)))
โป setํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ ๋ก ์ ๋ ฌ์ด ๋๋ค๊ณ ์๊ณ ์์๋๋ฐ, ๋ฌธ์ ์ ์ถ ์ ๋ค๋ฅธ ํ ์คํธ ์ผ์ด์ค์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ ๋ ฌ ํจ์๋ ์ ์ด์ค์ผ ํ๋ค.
'๐งฉ Algorithm > [Programmers] Level 1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 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 |
| Programmers ๋๋์ด ๋จ์ด์ง๋ ์ซ์ ๋ฐฐ์ด (Python/Level 1) (0) | 2022.07.22 |
| [Programmers] L1. ํ์ค๋ ์ (ํ์ด์ฌ) (0) | 2022.06.23 |