MUKER_DEV with iOS

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

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

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํƒ๋ฐฐ์ƒ์ž

MUKER 2023. 6. 22. 23:08
 

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

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

programmers.co.kr


์„ฑ๊ณต ํ’€์ด

import Foundation

func solution(_ order:[Int]) -> Int {
    var temp = [Int]() // ์ž„์‹œ ๋ณด๊ด€ํ•จ
    var progress = 1 // ์ƒ์ž ๋ฒˆํ˜ธ ์ฆ๊ฐ€
    var result = 0
    
    for box in order {
    	// ์ˆœ์„œ๋ณด๋‹ค ์ฃผ๋ฌธ๋ฐ•์Šค๊ฐ€ ํฌ๋ฉด
        if box > progress {
        	// ์ฃผ๋ฌธ๋ฐ•์Šค์™€ ์ƒ์ž์ˆœ์„œ๊ฐ€ ๊ฐ™์„ ๋•Œ ๊นŒ์ง€
            while box != progress {
            	// ์ž‘์€ ์ˆœ์„œ์˜ ์ƒ์ž๋Š” ์ž„์‹œ๋ณด๊ด€ํ•จ์— ๋„ฃ์Œ
                temp.append(progress)
                // ์ƒ์ž ๋ฒˆํ˜ธ ์ฆ๊ฐ€
                progress += 1
            }
        }
        if box == progress {
            result += 1
            progress += 1
        } else if box == temp.last ?? 0 {
            result += 1
            temp.removeLast()
        } else {
            break
        }
    }
    return result
}

ํ’€์ด ํ‚ค์›Œ๋“œ

- ์กฐ๊ฑด์ด ๊นŒ๋‹ค๋กญ์ง€๋Š” ์•Š์ง€๋งŒ, ๋กœ์ง์„ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ์†๊ฐ€๋Š”๋Œ€๋กœ ํ‘ผ๋‹ค๋ฉด ํ‹€๋ฆฌ๊ธฐ ์‰ฌ์šด ๋ฌธ์ œ์˜€๋‹ค.