728x90
class Solution {
public String solution(String letter) {
String answer = "";
String []arrStr = letter.split(" ");
String []mose = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
for(int i=0; i<arrStr.length; i++) {
for(int j=0; j<mose.length; j++) {
if(arrStr[i].equals(mose[j])) {
answer += (char)(j + 'a'); // j + 'a'
}
}
}
return answer;
}
}
우선 매개변수 letter에 있는 문자를 공백으로 모스부호가 찍혀있기 때문에
공백을 기준으로 문자열 배열에 넣어주고
모스 문자열배열에 0부터 끝까지 비교하면서
만약 모스 문자배열과 일치한다면 모스 문자배열의 인덱스가 해당 알파벳이 될 것이다.
arrStr[0] = ".-" 이면 mose[0]의 ".-" 과 일치하기 때문에
mose배열의 인덱스 0은 'a'를 뜻하므로 j번째(여기선 0) + 'a'(유니코드97)을 해주면 'a'가 answer에 저장된다.
한가지 주의할 점은
j+'a'를 명시적 형변환 할 때, (char)j+'a' 가 아니라 (char)(j+'a')처럼 괄호로 묶어줘야 원하는 문자가 저장된다.
반응형
'CodingTest > Programmers' 카테고리의 다른 글
| [프로그래머스] Lv.0 팩토리얼 (0) | 2022.12.01 |
|---|---|
| [프로그래머스] Lv.0 A로 B 만들기 (0) | 2022.12.01 |
| [프로그래머스] Lv.0 중복된 문자 제거** (0) | 2022.11.30 |
| [프로그래머스] Lv.0 합성수 찾기 (0) | 2022.11.30 |
| [프로그래머스] Lv.0 369게임 (0) | 2022.11.30 |
댓글