코딩테스트 연습 > 코딩테스트 입문 > 모스부호 (1)
머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
모스부호는 다음과 같습니다.
a ~ z에 해당하는 모스부호가 순서대로 담긴 배열입니다.
{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}
letter | result |
---|---|
".... . .-.. .-.. ---" | "hello" |
".--. -.-- - .... --- -." | "python" |
import java.util.HashMap;
class Solution {
public String solution(String letter) {
HashMap<String, String> morseMap = new HashMap<>();
String[] morse = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
char alpha = (char)97;
for(String m:morse){
morseMap.put(m, String.valueOf(alpha));
alpha++;
}
String[] letterMorse = letter.split(" ");
String answer = "";
for(String lm: letterMorse){
answer += morseMap.get(lm);
}
return answer;
}
}
HashMap을 사용해서 모스부호와 알파벳을 key, value로 넣었다.
그리고 주어진 letter를 공백을 기준으로 나누어서 HashMap에서 value 값을 찾아 answer에 더해주었다.
📌 형변환
1. String -> char :charAt()
문자열(String)에서 특정 위치의 문자(char)를 리턴String a = "Hello Java"; System.out.println(a.charAt(6)); // "J" 출력
- char -> String :
String.valueOf()
괄호 안의 객체(char)를 문자열(String)로 변환
입문을 하면 좋은 점이 분명 안다고 생각했던 것들이 헷갈릴 때가 있다..
근데 또 쉬운 것만 하다보면 어려운 게 하기싫어지는.. 도르마뭉뭉.... 🐶