Problem Solving/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค | Python] ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด

minzhen 2022. 7. 5. 09:32

๐Ÿ“’  ๋ฌธ์ œ ์ •๋ณด

 

๐Ÿ”’  ๋ฌธ์ œ ์„ค๋ช…

๋”๋ณด๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

array์˜ ๊ฐ element ์ค‘ divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” element๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ๋ฐฐ์—ด์— -1์„ ๋‹ด์•„ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”.


์ œํ•œ ์‚ฌํ•ญ

  • arr์€ ์ž์—ฐ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • ์ •์ˆ˜ i, j์— ๋Œ€ํ•ด i ≠ j ์ด๋ฉด arr[i] ≠ arr[j] ์ž…๋‹ˆ๋‹ค.
  • divisor๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • array๋Š” ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arr divisor return
[5, 9, 7, 10] 5 [5, 10]
[2, 36, 1, 3] 1 [1, 2, 3, 36]
[3,2,6] 10 [-1]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ#1
arr์˜ ์›์†Œ ์ค‘ 5๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์›์†Œ๋Š” 5์™€ 10์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ [5, 10]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ#2
arr์˜ ๋ชจ๋“  ์›์†Œ๋Š” 1์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์›์†Œ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด [1, 2, 3, 36]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ#3
3, 2, 6์€ 10์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์›์†Œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ [-1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ”‘  ๋ฌธ์ œ ํ’€์ด

๋ฐฉ๋ฒ• 1. ๋žŒ๋‹ค ํ‘œํ˜„์‹ ํ™œ์šฉ

lambda ํ‘œํ˜„์‹์˜ filter๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด์ด๋‹ค.

def solution(arr, divisor):
    answer = sorted(list(filter(lambda x : x % divisor == 0, arr)))
    if len(answer) == 0 : return [-1]
    else: return answer

 

๋ฐฉ๋ฒ• 1-1. ์œ„ ํ’€์ด ์‘์šฉ

Python์—์„œ or ์•ž์ด ์ฐธ์ผ ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น ๊ฐ’๊นŒ์ง€๋งŒ, ์•ž์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ๋’ค์˜ ๊ฒƒ์ด ํ˜ธ์ถœ๋˜๋Š” ํŠน์ง•์„ ์ด์šฉํ•œ ๋”์šฑ ๊ฐ„๋‹จํ•œ ํ’€์ด์ด๋‹ค.

def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]

 

 

 

๐Ÿ’ก  What I learned

  1. or ์—ฐ์‚ฐ์ž์˜ ๋˜ ๋‹ค๋ฅธ ํ™œ์šฉ๋ฒ• →  if  ~  else  ~ ๋ฌธ์„ ์“ฐ์ง€ ์•Š๊ณ  ๋”์šฑ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ƒˆ๋กœ ์•Œ์•˜๋‹ค.