๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ๋ชจ์Šค๋ถ€ํ˜ธ (1)

by hyebin (Helia) 2022. 12. 28.
๋ฐ˜์‘ํ˜•

๋ชจ์Šค๋ถ€ํ˜ธ (1)

๋ฌธ์ œ ์„ค๋ช…

๋จธ์“ฑ์ด๋Š” ์นœ๊ตฌ์—๊ฒŒ ๋ชจ์Šค๋ถ€ํ˜ธ๋ฅผ ์ด์šฉํ•œ ํŽธ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ์€ ์ฝ์„ ์ˆ˜ ์—†์–ด ์ด๋ฅผ ํ•ด๋…ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด letter๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, letter๋ฅผ ์˜์–ด ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ๋ชจ์Šค๋ถ€ํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

morse = { 
    '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
    '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
    '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
    '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
    '-.--':'y','--..':'z'
}

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ letter์˜ ๊ธธ์ด ≤ 1,000
  • return๊ฐ’์€ ์†Œ๋ฌธ์ž์ž…๋‹ˆ๋‹ค.
  • letter์˜ ๋ชจ์Šค๋ถ€ํ˜ธ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • letter์— ๊ณต๋ฐฑ์€ ์—ฐ์†์œผ๋กœ ๋‘ ๊ฐœ ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ•ด๋…ํ•  ์ˆ˜ ์—†๋Š” ํŽธ์ง€๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํŽธ์ง€์˜ ์‹œ์ž‘๊ณผ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

letter result
".... . .-.. .-.. ---" "hello"
".--. -.-- - .... --- -." "python"

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • .... = h
  • . = e
  • .-.. = l
  • .-.. = l
  • --- = o
  • ๋”ฐ๋ผ์„œ "hello"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • .--. = p
  • -.-- = y
  • - = t
  • .... = h
  • --- = o
  • -. = n
  • ๋”ฐ๋ผ์„œ "python"์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ letter:String) -> String {
    let morse: [String: String] = [".-":"a","-...":"b","-.-.":"c","-..":"d",".":"e","..-.":"f", "--.":"g","....":"h","..":"i",".---":"j","-.-":"k",".-..":"l",  "--":"m","-.":"n","---":"o",".--.":"p","--.-":"q",".-.":"r", "...":"s","-":"t","..-":"u","...-":"v",".--":"w","-..-":"x","-.--":"y","--..":"z"]
    var word = letter.split(separator: " ").map{String($0)}
    var answer = ""
    
    for w in word{
        answer += morse[w]!
    }
    
    return answer
}
๋ชจ์Šค๋ถ€ํ˜ธ๋ฅผ ๋ชจ์Šค๋ถ€ํ˜ธ๊ฐ€ key, ์•ŒํŒŒ๋ฒณ์ด value์ธ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•์œผ๋กœ ์„ ์–ธ
์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ ํ›„, ๋ชจ์Šค๋ถ€ํ˜ธ์—์„œ ํ•ด๋‹น๋˜๋Š” ์•ŒํŒŒ๋ฒณ์„ ์ฐพ์•„ answer ๋ณ€์ˆ˜์— ์ถ”๊ฐ€

๋‹ค๋ฅธ ํ’€์ด

import Foundation

func solution(_ letter:String) -> String {
    let morse: [String: String] = [".-":"a","-...":"b","-.-.":"c","-..":"d",".":"e","..-.":"f", "--.":"g","....":"h","..":"i",".---":"j","-.-":"k",".-..":"l",  "--":"m","-.":"n","---":"o",".--.":"p","--.-":"q",".-.":"r", "...":"s","-":"t","..-":"u","...-":"v",".--":"w","-..-":"x","-.--":"y","--..":"z"]
    return letter.components(separatedBy: " ").map { morse[$0] ?? "" }.joined() 
}
๋ชจ์Šค๋ถ€ํ˜ธ๋ฅผ ๋ชจ์Šค๋ถ€ํ˜ธ๊ฐ€ key, ์•ŒํŒŒ๋ฒณ์ด value์ธ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•์œผ๋กœ ์„ ์–ธ
์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ ํ›„, map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ์— ์•ŒํŒŒ๋ฒณ์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ joined ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜
๋ฐ˜์‘ํ˜•