๐Ÿงฉ Algorithm/[Programmers] Level 1

Programmers ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ (Python/Level 1)

devCloud 2022. 7. 6. 17:41
728x90

 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

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 ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ’€์ด

  1. combinations์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด itertools ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ importํ•œ๋‹ค. 
  2. combinations(iterable, r) : ์ˆœ์„œ๊ฐ€ ์žˆ๊ณ , ์ค‘๋ณต์ด ์—†๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‚˜์—ดํ•œ๋‹ค. dataset(iterable)์—์„œ 2๊ฐœ๋ฅผ ๋ฝ‘์•„ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  3. numbers์—๋Š” [(2,1), (2,3), (2,4), (2,1), (1,3), (1,4)...]์™€ ๊ฐ™์ด ์ €์žฅ์ด ๋œ๋‹ค.
  4. ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ [(2+1), (2+3), (2+4), .... ] ๊ฐ ์š”์†Œ๋ฅผ ๋”ํ•˜๊ธฐ ์œ„ํ•ด append๋ฅผ ์‚ฌ์šฉํ•ด answer ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.
  5. 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ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ €์ ˆ๋กœ ์ •๋ ฌ์ด ๋œ๋‹ค๊ณ  ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋ฌธ์ œ ์ œ์ถœ ์‹œ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌ ํ•จ์ˆ˜๋„ ์ ์–ด์ค˜์•ผ ํ•œ๋‹ค. 

728x90