💬 문제 설명
머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 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에 공백은 연속으로 두 개 이상 존재하지 않습니다.
- 해독할 수 없는 편지는 주어지지 않습니다.
- 편지의 시작과 끝에는 공백이 없습니다.
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
class Solution {
public String solution(String letter) {
String answer = "";
String[] morseCode = {
".-", // 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
};
for (String morse : letter.split(" ")) {
for (int i = 0; i < morseCode.length; i++) {
if(morse.equals(morseCode[i])) {
answer += (char) (i + 'a');
}
}
}
return answer;
}
}
✏ 해결방법 & 배운점
`letter`의 담긴 모스부호를 공백단위로 분리하여 사전에 만들어 놓았던 모스부호 배열를 순회하면서 문자열이 일치할 경우 배열의 index 값에 문자 `a`를 더하는 방식으로 문제를 해결하였습니다.
'PS > 프로그래머스 입문 100제' 카테고리의 다른 글
[프로그래머스] LV.0 숨어있는 숫자의 덧셈 (2) - 자바 [64/100] (0) | 2024.06.26 |
---|---|
[프로그래머스] LV.0 팩토리얼 - 자바 [63/100] (0) | 2024.06.26 |
[프로그래머스] LV.0 2차원으로 만들기 - 자바 [61/100] (0) | 2024.06.26 |
[프로그래머스] LV.0 중복된 문자 제거- 자바 [60/100] (0) | 2024.06.25 |
[프로그래머스] LV.0 합성수 찾기 - 자바 [59/100] (0) | 2024.06.25 |