Coding Test/Programmers(프로그래머스)
[JAVA] 모스부호(1)
공구일
2025. 4. 3. 04:06
728x90
🔍자바 : 코딩테스트 . 모스부호(1)
01. 코드 기획 단계
- 모스부호를 파이썬의 딕셔너리 형식으로 주어졌길래 이걸 자바 내부에 있는 컬렉션 중 딕셔너리처럼 키-쌍을 갖는 맵에 넣어서 사용하려고 했습니다. 정렬을 고려하여 트리맵을 이용해주었습니다.(키값에 넣어줘야하는데 값에 넣어줘서 정렬에 조금 번거로워지긴 했습니다.)
- 일칙하는 경우 answer 문자 배열에 넣어서 String으로 만들어줄 것입니다.
02. 코드 실행 및 오류 잡기
import java.util.TreeMap;
class Solution {
public String solution(String letter) {
TreeMap<String, Character> morse = new TreeMap<>();
morse.put(".-", 'a');
morse.put("-...", 'b');
morse.put("-.-.", 'c');
morse.put("-..", 'd');
morse.put(".", 'e');
morse.put("..-.", 'f');
morse.put("--.", 'g');
morse.put("....", 'h');
morse.put("..", 'i');
morse.put(".---", 'j');
morse.put("-.-", 'k');
morse.put(".-..", 'l');
morse.put("--", 'm');
morse.put("-.", 'n');
morse.put("---", 'o');
morse.put(".--.", 'p');
morse.put("--.-", 'q');
morse.put(".-.", 'r');
morse.put("...", 's');
morse.put("-", 't');
morse.put("..-", 'u');
morse.put("...-", 'v');
morse.put(".--", 'w');
morse.put("-..-", 'x');
morse.put("-.--", 'y');
morse.put("--..", 'z');
String[] word = letter.split(" ");
char[] answer = new char[word.length];
int index = 0;
for(String m : word){
if(morse.containsKey(m)){
answer[index++] = morse.get(m);
}
}
String answerEnd = new String(answer);
return answerEnd;
}
}
03. 정리
- 정렬에 유리한 트리맵을 이용하려했지만 초반 계획과는 다르게 사용하지 않게 되었습니다.
- 문자 배열을 문자열로 만드는 방법과 문자열을 문자배열로 만드는 방법입니다.
// 방법 1
String str1 = new String(charArray);
// 방법 2
String str2 = String.valueOf(charArray);
// --------------------------------------
char[] charArray = str.toCharArray();
728x90