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

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

EarthSea 2024. 5. 2. 09:57

 

 

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

 

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

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

programmers.co.kr

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

 

-Swift-CodingTest/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/2/84512.โ€…๋ชจ์Œโ€…์‚ฌ์ „ at main · BaeJihae/-Swift-CodingTest

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

github.com

 

 

๋ฌธ์ œ ์„ค๋ช…

์‚ฌ์ „์— ์•ŒํŒŒ๋ฒณ ๋ชจ์Œ 'A', 'E', 'I', 'O', 'U'๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”, ๊ธธ์ด 5 ์ดํ•˜์˜ ๋ชจ๋“  ๋‹จ์–ด๊ฐ€ ์ˆ˜๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „์—์„œ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๋Š” "A"์ด๊ณ , ๊ทธ๋‹ค์Œ์€ "AA"์ด๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋Š” "UUUUU"์ž…๋‹ˆ๋‹ค.

๋‹จ์–ด ํ•˜๋‚˜ word๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ด ๋‹จ์–ด๊ฐ€ ์‚ฌ์ „์—์„œ ๋ช‡ ๋ฒˆ์งธ ๋‹จ์–ด์ธ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

์ œํ•œ์‚ฌํ•ญ

  • word์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 5 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • word๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž 'A', 'E', 'I', 'O', 'U'๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

word result
"AAAAE" 6
"AAAE" 10
"I" 1563
"EIO" 1189

 

 

๋ฌธ์ œ ํ’€์ด

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

import Foundation

func solution(_ word:String) -> Int {
    
    let alphabet = ["A","E","I","O","U"]
    var count = 0
    var isAnswer: Bool = false
    
    func dfs(str: String, num: Int) {
        
        if str != word {
            count += 1
        }else {
            isAnswer = true
        }
        
        for w in alphabet {
            if num < 5 && !isAnswer {
                dfs(str: str+w, num: num+1)
            }
        }
    }
    dfs(str: "", num: 0)
    return count
}

 

๋ฌธ์ œ ์œ ํ˜•์ด ์™„์ „ํƒ์ƒ‰์ด๋ผ๊ณ  ํ•ด์„œ.. DFS๋กœ ํ‘ธ๋Š” ๊ฑธ ์•Œ์•˜๋‹ค. ์™„์ „ํƒ์ƒ‰์ด๋ผ๊ณ  ์ ํ˜€์žˆ์ง€ ์•Š์•˜๋‹ค๋ฉด DFS๋ฌธ์ œ์ธ์ง€ ๋ฐ”๋กœ ๋– ์˜ค๋ฅด์ง„ ์•Š์•˜์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋”๋“ฌ๋”๋“ฌ “ํ”ผ๋กœ๋„” ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋˜ ๊ธฐ์–ต์„ ๋”๋“ฌ์–ด dfs๋กœ ํ’€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

์‚ฌ์ „๊ณผ ๋™์ผํ•œ ๊ฐ’์ด ๋‚˜์™€์„œ ๋”์ด์ƒ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์•„๋„ ๋  ๋•Œ์˜ ์กฐ๊ฑด์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์› ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ true/false๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ•˜๋‹ˆ word์™€ ๋™์ผํ•œ ๊ฐ’์ด ๋‚˜์™”์„ ๋•Œ ๋”์ด์ƒ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋Œ์ง€ ์•Š๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์ฒ˜์Œ์—” str๊ฐ’์„ [String] ๋ฐฐ์—ด๋กœ ์ฃผ์—ˆ๋Š”๋ฐ, ๊ทธ๋Ÿผ joinํ•˜๋Š” ์‹œ๊ฐ„๋„ ์žˆ๊ณ , append๋„ ํ•ด์ค˜์•ผํ•˜๋Š”๋ฐ ์ƒ์ˆ˜์—๋‹ค๊ฐ€ appendํ•  ์ˆ˜๊ฐ€ ์—†์–ด์„œ ์ด๋ฅผ String์œผ๋กœ ๋ฐ”๊พธ์–ด ํ’€์–ด์ฃผ์—ˆ๋‹ค.