Focus On Develop ๐ŸคŸ๐ŸคŸ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”„๋ฆฐํ„ฐ ๋ณธ๋ฌธ

iOS [Swift]/์•Œ๊ณ ๋ฆฌ์ฆ˜

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”„๋ฆฐํ„ฐ

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2021. 2. 18. 15:23

<๋ฌธ์ œ>


<์ „๋žต์งœ๊ธฐ>

์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€(์ตœ๋Œ“๊ฐ’) ์ธ์‡„๋ฌผ์„ ์ฐพ๊ณ , ๊ทธ๊ฒŒ ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•œ ์ธ์‡„๋ฌผ๊ณผ ๋™์ผํ•˜๋‹ค๋ฉด ๋ช‡๋ฒˆ์งธ๋กœ ์ถœ๋ ฅ๋˜์—ˆ๋Š”์ง€๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์ฆ‰ ์šฐ์„ ์ˆœ์œ„๋งŒ ๋†’๋‹ค๊ณ  ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ์šฐ์„ ์ˆœ์œ„์™€ ์ธ์‡„๋ฌผ๋ฒˆํ˜ธ๋ฅผ ์Œ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ํŠœํ”Œ๋กœ (์ธ์‡„๋ฌผ์œ„์น˜, ์šฐ์„ ์ˆœ์œ„)๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“  ๋‹ค์Œ, ๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ๋Œ€๋กœ ๊ฐ€์žฅ ์•ž์˜ ์ธ์‡„๋ฌผ์ด ์ถœ๋ ฅํ•  ์ˆœ์„œ์ธ์ง€ ํ™•์ธํ•˜๊ณ , ๋งž๋‹ค๋ฉด ์ด๊ฒŒ ์š”๊ตฌํ–ˆ๋˜ ์ธ์‡„๋ฌผ๋ฒˆํ˜ธ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ•œ๋ฒˆ๋” ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๊ณ , ์ผ์น˜ํ•˜๋ฉด ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

<์ฝ”๋“œ>

func solution(_ priorities:[Int], _ location:Int) -> Int {
    var printArray: [(Int, Int)] = []
    var res = 1
    
    for (i, x) in priorities.enumerated() {
        printArray.append((i, x))
    }
    
    while true {
        let curMax = printArray.max(by: { $0.1 < $1.1 })!.1
        if curMax == printArray[0].1 {
            if location == printArray[0].0 {
                return res
            } else {
                printArray.removeFirst()
                res += 1
            }
        } else {
            printArray.append(printArray[0])
            printArray.removeFirst()
        }
    }
    return 0
}

 

<Lesson Learned>

array์—์„œ .max()๋กœ ๊ทธ๋ƒฅ ์ตœ๋Œ“๊ฐ’๋งŒ ์ฐพ์•˜์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ํŠœํ”Œ Array์˜ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ผ.. max()์— ํด๋กœ์ ธ๋ฅผ ์ž‘์„ฑ์„ ํ•ด์•ผํ–ˆ๋‹ค. (์‚ฌ์‹ค์€ max ๋ฉ”์†Œ๋“œ์— ํด๋กœ์ ธ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š”์ง€๋„ ๋ชฐ๋ž์Œ..ใ…Žใ…Ž) ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€์‹ ์˜ ๋„์›€์„ ์•ฝ๊ฐ„ ๋ฐ›์•„์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

 

 

 

 

์ถœ์ € : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ”„๋ฆฐํ„ฐ

 

Comments