문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
국제 모스 부호는 각 문자를 점과 선의 연속으로 매핑하는 표준 인코딩 방식을 정의하며, 그 예는 다음과 같다.
편의를 위해 영어 알파벳 26개 글자에 대한 전체 표를 아래에 제시한다.
[".-", "-...", "-.-.", "-..", ".", "..-." ,"--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."]
각 단어가 각 문자의 모스 부호와 연결하여 표현할 수 있는 문자열 배열 words가 주어진다.
모든 단어들 사이의 서로 다른 변환 횟수를 반환해라.
#1
Input: words = ["gin", "zen", "gig", "msg"]
Output: 2
Explanation: 각 단어의 변환은 아래와 같다.
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."
2개의 다른 변화인 "--...-."과 "--...--."이 있다.
#2
Input: words = ["a"]
Output: 1
class Solution {
public int uniqueMorseRepresentations(String[] words) {
String[] morse = {".-", "-...", "-.-.", "-..", ".", "..-." ,"--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
Set<String> set = new HashSet<>();
for(String word: words){
StringBuilder sb = new StringBuilder();
for(char c : word.toCharArray()){
sb.append(morse[c - 'a']);
}
set.add(sb.toString());
}
return set.size();
}
}