Focus On Develop ๐ŸคŸ๐ŸคŸ

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

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

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

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2020. 12. 23. 15:03

<๋ฌธ์ œ>


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

๋จผ์ € ์ƒ๊ฐํ•ด๋ณธ๊ฑด, skill์˜ ๊ฐ ์Šคํ‚ฌ ์‚ฌ์ด์‚ฌ์ด์— ์•„๋ฌด๊ฐ’์ด๋‚˜ ๋“ค์–ด๊ฐ€๋„ ์ƒ๊ด€์—†๋Š” ๋น„๊ต์ž๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋‹ค. (%C%B%D%).. ์ด๋ ‡๊ฒŒ๋งŒ ๋น„๊ต์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉด skill trees๋ฅผ ๋น„๊ตํ•ด๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™์€..? ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ๋ชจ๋ฆ„ ใ…‹ ๊ทธ๋ž˜์„œ ํƒํ•œ ๋ฐฉ๋ฒ•์€.. skill trees๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ณด๋ฉด์„œ.. ์ •ํ•ด์ง„ ์„ ํ–‰ skill์„ ๋ฐฐ์šฐ๊ณ  ํ•˜๋Š”๊ฑฐ๋ƒ? ํ•˜๊ณ  ๋ฌผ์–ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. (๋จผ์ € ์„ ํ–‰์Šคํ‚ฌ์— ํฌํ•จ๋œ ์Šคํ‚ฌ์ธ์ง€? ๋‹ค์Œ์€ ์•ž์— ์„ ํ–‰์Šคํ‚ฌ์€ ๋‹ค ๋ฐฐ์› ๋Š”์ง€?) ๋งŒ์•ฝ ์„ ํ–‰์Šคํ‚ฌ๊ณผ ์ƒ๊ด€์—†๋Š” ์Šคํ‚ฌ์ด๋ผ๋ฉด ํ•™์Šต ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  pass ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

<์ฝ”๋“œ>

import Foundation

func solution(_ skill:String, _ skill_trees:[String]) -> Int {
    var res = 0
    for us in skill_trees {
        var Askill = Array(skill)
        for c in Array(us) {
            if skill.contains(c) {
                if Askill[0] == c {
                    Askill.removeFirst()
                    if Askill.count == 0 || c == us[us.index(before: us.endIndex)] {
                        res += 1
                        break
                    }
                } else {
                    break
                }
            } else {
                if c == us[us.index(before: us.endIndex)] {
                    res += 1
                } else {
                    continue
                }
            }
        }
    }
    return res
}

 

<Lesson Learned>

๋„ˆ๋ฌด Level1 ์งœ๋ฆฌ๋งŒ ๊ณจ๋ผํ‘ธ๋‚˜..? ์‹ถ์–ด์„œ Level2๋„ ๊ฐ™์ด ํ’€์–ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค ใ…‹ใ…‹ ๊ทธ๋Ÿฌ๋‚˜.. ๊ทธ๊ฒฐ๊ณผ ์ฝ”๋“œ๋ฅผ ๋ณด๋ผ.. ํ•ต.์ง€.์ €.๋ถ„ ๐Ÿ˜ ์†”์งํžˆ ์กฐ๊ฑด์„ ํ•˜๋‚˜ํ•˜๋‚˜ ํ™•์ธํ•˜์ง€ ์•Š๊ณ ์„œ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐํ•ด์•ผ ํ• ์ง€ ๋ชฐ๋ž๋‹ค. (์—ฌ์ „ํžˆ ๋‚ด ์ƒ๊ฐ์€ C++ Coding Style์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ์Œ....ใ… ใ… ) ์–ด์จŒ๋“  ์‹œํ‚ค๋Š”๋Œ€๋กœ ํ•ด์„œ ํ†ต๊ณผ๋Š” ํ–ˆ์ง€๋งŒ.. ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ๋ ์šฉ~ ํ•˜๊ณ  ๊ฐ๋™๋ฐ›์•„์„œ ๋ฐœ์ทŒํ•ด์„œ ์˜ฌ๋ ค๋‘ฌ์•ผ๊ฒ ๋‹ค ใ…‹ใ…‹ ๐Ÿ‘

func solution(_ skill:String, _ skill_trees:[String]) -> Int {
    func available(_ s: String, _ t: String) -> Bool {
        let alza = t.filter { s.contains($0) } // ์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ skill์— ํฌํ•จ๋œ ๊ฒƒ๋“ค๋งŒ ๋‚จ๋”๋ผ ใ… 
        return s.starts(with: alza) // ์„ ํ–‰์Šคํ‚ฌ์ˆœ์„œ๊ฐ€ ์ œ๋Œ€๋กœ ๋œ๊ฒƒ๋“ค๋งŒ true
    }
    return skill_trees.map { available(skill, $0) }.filter { $0 }.count
}

 

 

 

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

Comments