머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 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'
}
letter
의 길이 ≤ 1,000letter
의 모스부호는 공백으로 나누어져 있습니다.letter
에 공백은 연속으로 두 개 이상 존재하지 않습니다.letter | result |
---|---|
".... . .-.. .-.. ---" | "hello" |
".--. -.-- - .... --- -." | "python" |
입출력 예 #1
입출력 예 #2
public class Solution {
public string solution(string letter) {
string answer = "";
string[] mos = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." };
// Split()은 문자열을 잘라주고 현재 공백을 기준으로 자름
foreach(string a in letter.Split(" "))
{
// IndexOf()는 동일한 문자열이 존재할 경우 문자열의 위치를 반환한다. 문자열의 위치에 97을 더해 Covert.ToChar()로 변환하면 그에 맞는 문자로 변환된다.
answer += Convert.ToChar(Array.IndexOf(mos, a) + 97);
}
return answer;
}
}
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges