반응형
내 코드 (틀림)
import java.util.*;
class Solution {
public String solution(String letter) {
String answer = "";
String[] strArr = letter.split(" ");
for(String s : strArr) {
if(s.equals("._")) answer += "a";
else if(s.equals("-...")) answer += "b";
else if(s.equals("-.-.")) answer += "c";
else if(s.equals("-..")) answer += "d";
else if(s.equals(".")) answer += "e";
else if(s.equals("..-.")) answer += "f";
else if(s.equals("--.")) answer += "g";
else if(s.equals("....")) answer += "h";
else if(s.equals("-...")) answer += "i";
else if(s.equals("..")) answer += "j";
else if(s.equals("-.-")) answer += "k";
else if(s.equals(".-..")) answer += "l";
else if(s.equals("--")) answer += "m";
else if(s.equals("-.")) answer += "n";
else if(s.equals("---")) answer += "o";
else if(s.equals(".--.")) answer += "p";
else if(s.equals("--.-")) answer += "q";
else if(s.equals(".-.")) answer += "r";
else if(s.equals("...")) answer += "s";
else if(s.equals("-")) answer += "t";
else if(s.equals("..-")) answer += "u";
else if(s.equals("...-")) answer += "v";
else if(s.equals(".--")) answer += "w";
else if(s.equals("-..-")) answer += "x";
else if(s.equals("-.--")) answer += "y";
else if(s.equals("--..")) answer += "z";
}
return answer;
}
}
딕셔너리 방식을 써볼까 하다가 먼저 노가다식으로 해보기로 했다.
근데 패스 못함..ㅋ
그래서 그냥 코드 값을 갖고 있는 배열을 만들고,
이 값과 비교해서 같으면 알파벳으로 만들어주기로함...
import java.util.*;
class Solution {
public String solution(String letter) {
String answer = "";
String[] strArr = letter.split(" ");
String[] codes = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
for(int i=0 ; i < strArr.length ; i++) {
for(int j=0 ; j < codes.length ; j++) {
if(strArr[i].equals(codes[j])) {
answer += (char)(j + 'a');
}
}
}
return answer;
}
}
· 'a' 대신 97 써도 됨.
· (char) : 숫자를 문자로 변환
값 치환하기,,,!!!
Map 쓸 생각도 했었는데 이 방법으로 구현한 다른 답도 있었다.
import java.util.Map;
import java.util.HashMap;
class Solution {
public String solution(String letter) {
String answer = "";
Map<String, String> morse = new HashMap<>(){
{
put(".-","a");
put("-...","b");
put("-.-.","c");
put("-..","d");
put(".","e");
put("..-.","f");
put("--.","g");
put("....","h");
put("..","i");
put(".---","j");
put("-.-","k");
put(".-..","l");
put("--","m");
put("-.","n");
put("---","o");
put(".--.","p");
put("--.-","q");
put(".-.","r");
put("...","s");
put("-","t");
put("..-","u");
put("...-","v");
put(".--","w");
put("-..-","x");
put("-.--","y");
put("--..","z");
}
};
String[] letters = letter.split(" ");
for(String str : letters){
answer += morse.get(str);
}
return answer;
}
}
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 0] 구슬을 나누는 경우의 수 (0) | 2023.02.17 |
---|---|
[프로그래머스/Lv. 0] 옹알이 (1) (0) | 2023.02.17 |
[프로그래머스/Lv. 0] 특이한 정렬 (0) | 2023.02.16 |
[프로그래머스/Lv. 0] 이진수 더하기 (0) | 2023.02.16 |
[프로그래머스/Lv. 0] 겹치는 선분의 길이 (0) | 2023.02.14 |