๐Ÿง‘๐Ÿป‍๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers

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

EarthSea 2024. 4. 23. 23:46

 

 

๐Ÿ„ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ ๋งํฌ

 

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

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

programmers.co.kr

โœ๐Ÿป ๋ฌธ์ œ ํ’€์ด Github ๋งํฌ

 

-Swift-CodingTest/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/2/87946.โ€…ํ”ผ๋กœ๋„ at 2155d92b0146c5dcfbdbe857b92dd391a4c36f4b · BaeJihae/-Swift-CodingT

Swift๋กœ ํ‘ผ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. Contribute to BaeJihae/-Swift-CodingTest development by creating an account on GitHub.

github.com

 

 

๋ฌธ์ œ ์„ค๋ช…

XX๊ฒŒ์ž„์—๋Š” ํ”ผ๋กœ๋„ ์‹œ์Šคํ…œ(0 ์ด์ƒ์˜ ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค)์ด ์žˆ์œผ๋ฉฐ, ์ผ์ • ํ”ผ๋กœ๋„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋˜์ „์„ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ฐ ๋˜์ „๋งˆ๋‹ค ํƒํ—˜์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"์™€ ๋˜์ „ ํƒํ—˜์„ ๋งˆ์ณค์„ ๋•Œ ์†Œ๋ชจ๋˜๋Š” "์†Œ๋ชจ ํ”ผ๋กœ๋„"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"๋Š” ํ•ด๋‹น ๋˜์ „์„ ํƒํ—˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ํ”ผ๋กœ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, "์†Œ๋ชจ ํ”ผ๋กœ๋„"๋Š” ๋˜์ „์„ ํƒํ—˜ํ•œ ํ›„ ์†Œ๋ชจ๋˜๋Š” ํ”ผ๋กœ๋„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"๊ฐ€ 80, "์†Œ๋ชจ ํ”ผ๋กœ๋„"๊ฐ€ 20์ธ ๋˜์ „์„ ํƒํ—˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ ์ €์˜ ํ˜„์žฌ ๋‚จ์€ ํ”ผ๋กœ๋„๋Š” 80 ์ด์ƒ ์ด์–ด์•ผ ํ•˜๋ฉฐ, ๋˜์ „์„ ํƒํ—˜ํ•œ ํ›„์—๋Š” ํ”ผ๋กœ๋„ 20์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค.

 

์ด ๊ฒŒ์ž„์—๋Š” ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ์”ฉ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋˜์ „์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š”๋ฐ, ํ•œ ์œ ์ €๊ฐ€ ์˜ค๋Š˜ ์ด ๋˜์ „๋“ค์„ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ํƒํ—˜ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์œ ์ €์˜ ํ˜„์žฌ ํ”ผ๋กœ๋„ k์™€ ๊ฐ ๋˜์ „๋ณ„ "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„", "์†Œ๋ชจ ํ”ผ๋กœ๋„"๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด dungeons ๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์œ ์ €๊ฐ€ ํƒํ—˜ํ• ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋˜์ „ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

 

์ œํ•œ์‚ฌํ•ญ

  • k๋Š” 1 ์ด์ƒ 5,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • dungeons์˜ ์„ธ๋กœ(ํ–‰) ๊ธธ์ด(์ฆ‰, ๋˜์ „์˜ ๊ฐœ์ˆ˜)๋Š” 1 ์ด์ƒ 8 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • dungeons์˜ ๊ฐ€๋กœ(์—ด) ๊ธธ์ด๋Š” 2 ์ž…๋‹ˆ๋‹ค.
    • dungeons์˜ ๊ฐ ํ–‰์€ ๊ฐ ๋˜์ „์˜ ["์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„", "์†Œ๋ชจ ํ”ผ๋กœ๋„"] ์ž…๋‹ˆ๋‹ค.
    • "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"๋Š” ํ•ญ์ƒ "์†Œ๋ชจ ํ”ผ๋กœ๋„"๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"์™€ "์†Œ๋ชจ ํ”ผ๋กœ๋„"๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • ์„œ๋กœ ๋‹ค๋ฅธ ๋˜์ „์˜ ["์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„", "์†Œ๋ชจ ํ”ผ๋กœ๋„"]๊ฐ€ ์„œ๋กœ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์ž…์ถœ๋ ฅ ์˜ˆ

k dungeons result
80 [[80,20],[50,40],[30,10]] 3

 

 

 

๋ฌธ์ œ ํ’€์ด

 

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

 

์ดํ‹€๋™์•ˆ ๋จธ๋ฆฌ๋ฅผ ์‹ธ๋งธ๋Š”๋ฐ ๋ชปํ’€์—ˆ์Šต๋‹ˆ๋‹ค!

์ˆœ์—ด๋กœ ํ•ด๋‹น ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋„, ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ํ’€์–ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ์•˜๋Š”๋ฐ, ๋กœ์ง๊ตฌํ˜„์ด ์ œ ์†์œผ๋กœ ๋˜์งˆ ์•Š์•˜์–ด์š”..!

๊ทธ๋ž˜์„œ ํ•œ์ฐธ์„ ๊ณ ๋ฏผํ•˜๋‹ค ๋‹ต์„ ๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค!

๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์†์œผ๋กœ ๋‹ค ๊ทธ๋ ค๋ณธ ํ›„์—์•ผ ์ดํ•ด๊ฐ€ ๋˜์—ˆ์–ด์š”!

๋‚ด์ผ ์•„์นจ์— ์ผ์–ด๋‚˜์ž๋งˆ์ž ์ด ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค!

 

 

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

import Foundation

func solution(_ k:Int, _ dungeons:[[Int]]) -> Int {

    var answer = 0
    var check = [Bool](repeating: false, count: dungeons.count)
    
    func dfs(now: Int, depth: Int) {
        
        answer = max(depth, answer)
        
        for i in 0..<dungeons.count {
            if !check[i] && now >= dungeons[i][0]{
                check[i] = true
                dfs(now: now - dungeons[i][1], depth: depth+1 )
                check[i] = false
            }
        }
    }
    
    dfs(now: k, depth: 0)
    return answer
}

 

check๋Š” ํ•ด๋‹น ์ธ๋ฑ์Šค๊ฐ€ ์ˆœํšŒ๋ฅผ ๋Œ์•˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

answer์€ ๊ฐ€์žฅ ๊นŠ๊ฒŒ ๊นŒ์ง€ ํƒ์ƒ‰ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ต๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค.