๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

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

by Fomagran ๐Ÿ’ป 2020. 2. 11.
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ์„ค๋ช…

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.newarray๋ผ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ 

2.for๋ฌธ์„ ์‚ฌ์šฉํ•ด 0์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž๋ฅผ ๋‹ด๊ณ 

3.1๊ฐœ ์ด์ƒ ๋‹ด๊ฒจ์žˆ๋‹ค๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฆฌํ„ดํ•ด๋ผ -> ์ด ๋ถ€๋ถ„์„ ๋†“์ณ์„œ ๊ณ„์† ํ‹€๋ฆฌ๊ณ  ์žˆ์—ˆ์Œ.

4.์•„๋‹ˆ๋ผ๋ฉด [-1]์„ ๋ฐ˜ํ™˜ํ•ด๋ผ

์ด๋ ‡๊ฒŒ for๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง„๋‹ค.

์ƒˆ๋กญ๊ฒŒ ์•ˆ ์‚ฌ์‹ค์€ newarr์„ return ํ•˜๊ธฐ ์ „์— ์ •๋ ฌํ• ๊ฑฐ๋ฉด sort๋ฅผ ์จ์•ผํ•œ๋‹ค ์•„๋‹˜ return๊ฐ’ ์ž์ฒด๋ฅผ newarr.sorted()ํ•˜๋ฉด ๋œ๋‹ค.

sort๋Š” return๊ฐ’์ด ์—†๊ณ  sorted๋Š” ๊ทธ ์ž์ฒด๋กœ return๊ฐ’์ด ๋œ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import Foundation
 
 
func solution(_ arr:[Int], _ divisor:Int-> [Int] {
//newarray๋ผ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ 
    var newarr = [Int]()
//for๋ฌธ์„ ์ด์šฉํ•ด  
    for i in 0..<arr.count{
    //arr๋ฐฐ์—ด ์ค‘ divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒŒ ์žˆ์œผ๋ฉด
        if arr[i]%divisor == 0 {
        //newarray์— ๋‹ด์•„๋ผ
            newarr.append(arr[i])
        }
    }
//newarray์— 1๊ฐœ ์ด์ƒ ๋‹ด๊ฒจ์žˆ๋‹ค๋ฉด
     if newarr.count > 0 {
     //์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
        newarr.sort(by:<)
        //๋ฐ˜ํ™˜ํ•ด๋ผ
    return newarr
    //์•„๋‹ˆ๋ผ๋ฉด
    }else{
    //[-1]์„ ๋ฐ˜ํ™˜ํ•ด๋ผ
        return [-1]
    }
 
 
}

๋งต๊ณผ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 2์ค„๋กœ ์ค„์ผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

1
2
3
4
5
6
7
import Foundation
 
func solution(_ arr:[Int], _ divisor:Int-> [Int] {
    
    let arr1 = arr.filter { n in n%divisor == 0 }.map {$0}
    if arr1.count > 0 { return arr1.sorted()else {return [-1]}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

๋‹ค๋ฅธ ์‚ฌ๋žŒ ์ค‘ ๊ฐ€์žฅ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ํ’€์ด

๋‚ด๊ฐ€ ๋†“์นœ ๋ถ€๋ถ„ map์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ํ•„ํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์•Œ์•„์„œ ๋ฐฐ์—ด์— ๋‹ด๊น€

๊ทธ๋ฆฌ๊ณ  ๊ตณ์ด if else๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์กฐ๊ฑด ? true : false๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

1
2
3
4
func solution(_ arr:[Int], _ divisor:Int-> [Int] {
    let array = arr.sorted().filter{ $0 % divisor == 0 }
    return  array == [] ? [-1] : array
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€