MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๋ถ€๋ถ„๋ฌธ์ž์—ด ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๋ถ€๋ถ„๋ฌธ์ž์—ด

MUKER 2023. 1. 13. 09:42
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


๋ฌธ์ œํ’€์ด๋ฅผ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ’€์ด์™€
๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด๋กœ ๋‚˜๋ˆ„์–ด ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
- ๋ฌธ์ œ์— ๋”ฐ๋ผ ํ•˜๋‚˜์˜ ํ’€์ด๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‚˜์˜ ํ’€์ด

import Foundation

func solution(_ t:String, _ p:String) -> Int {
    var arr = [Int]()
    var start = 0
    var end = p.count-1
    (0...t.count-p.count).forEach { i in
        var startIndex = t.index(t.startIndex, offsetBy: start)
        var endIndex = t.index(t.startIndex, offsetBy: end)
        arr.append(Int(t[startIndex...endIndex])!)
        start += 1
        end += 1
    }
    return arr.filter { $0 <= Int(p)! }.count
}

 

๋ฌธ์ž์—ด ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.

์ด ๋ฐ˜๋ณต์ˆ˜๋งŒ ์ž˜ ๊ตฌํ•ด์ฃผ๋ฉด

startIndex์™€ endIndex๋ฅผ +1 ์”ฉ ํ•ด๊ฐ€๋ฉฐ

์›ํ•˜๋Š” ๋ฌธ์ž์—ด ๊ธธ์ด๋งŒํผ ๋ฝ‘์•„์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

์ฐธ๊ณ ํ• ๋งŒํ•œ ํ’€์ด

import Foundation

func solution(_ t:String, _ p:String) -> Int {
    var answer = 0

    for i in 0 ... t.count - p.count {
        let subStr = t.dropFirst(i).prefix(p.count)
        if let comp = Int(subStr), let val = Int(p) {
            answer += comp - val <= 0 ? 1 : 0
        }
    }

    return answer
}

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด ์ค‘

์ œ์ผ ๊ฐ„๋‹จํ•ด ๋ณด์—ฌ์„œ ๊ฐ€์ ธ์™”๋‹ค.

๋ฐ˜๋ณต ์ธ๋ฑ์Šค ๋งŒํผ

t๋ฌธ์ž์—ด ์•ž์—์„œ ๋ถ€ํ„ฐ drop์‹œํ‚จ๋‹ค.

๊ทธ๋ฆฌ๊ณ  p์˜ count์ˆ˜ ๋งŒํผ ๋ฐ˜ํ™˜ํ•ด์„œ ๋น„๊ตํ•˜๋ฉด ๋!!