๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Problem Solving

[Swift Algorithm] ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ Programmers(Lv.1)

by seolhee2750 2021. 6. 7.
๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜๋ฅผ ์ €์žฅํ•œ ๋ฐฐ์—ด, arr ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹จ, ๋ฆฌํ„ดํ•˜๋ ค๋Š” ๋ฐฐ์—ด์ด ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์— -1์„ ์ฑ„์›Œ ๋ฆฌํ„ดํ•˜์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด arr์ด [4,3,2,1]์ธ ๊ฒฝ์šฐ๋Š” [4,3,2]๋ฅผ ๋ฆฌํ„ด ํ•˜๊ณ , [10]๋ฉด [-1]์„ ๋ฆฌํ„ด ํ•ฉ๋‹ˆ๋‹ค.

 

์ œํ•œ ์กฐ๊ฑด
  • arr์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • ์ธ๋ฑ์Šค i, j์— ๋Œ€ํ•ด i ≠ j์ด๋ฉด arr[i] ≠ arr[j] ์ž…๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ
arr return
[4, 3, 2, 1] [4, 3, 2]
[10] [-1]

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
func solution(_ arr:[Int]) -> [Int] {
    let min = arr.min()
    let notMinArr = arr.filter{$0 != min}
    
    return notMinArr.isEmpty ? [-1] : notMinArr
}
  • min ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ์•˜์Œ
  • fillter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์›์†Œ ์ค‘ min์ด ์•„๋‹Œ ๊ฒƒ๋งŒ ์ฐพ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด์ฃผ์—ˆ์Œ
  • isEmpty๋ฅผ ์ด์šฉํ•˜์—ฌ ์ตœ์†Œ ๊ฐ’์„ ์ œ์™ธํ•œ ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ [-1]์„,
    ์•„๋‹ ๊ฒฝ์šฐ์—” ์ƒˆ๋กœ ๋งŒ๋“  ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•ด ์ฃผ์—ˆ์Œ

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • min, isEmpty ํ•จ์ˆ˜์˜ ์กด์žฌ๋ฅผ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ์Œ
  • fillter๋ฅผ ์•„์ง ์ต์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜์—ฌ ๋ฌธ์ œ ํ’€์ด์— ์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Œ.
    filter๋ฅผ ๋” ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ด์•ผ ํ•  ๋“ฏ

 


 

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/12935

๋Œ“๊ธ€