import java.util.HashMap;
import java.util.Map;

class Solution {
    public String solution(String letter) {
        String value = "";
        Map<String, String> map = new HashMap<>();
        String[] words = letter.split(" ");

        String[] abc = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
        String[] morse = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--",
                "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};

        StringBuffer sb = new StringBuffer();

        for (int i = 0; i < abc.length; i++) {
            map.put(morse[i], abc[i]);
        }

        for (int i = 0; i < words.length; i++) {
            for (int j = 0; j < morse.length; j++) {
                if (words[i].equals(morse[j])) {
                    sb.append(map.get(morse[j]));
                }
            }
        }
        return sb.toString();
    }
}

문자열을 합칠 때는 StringBuilder나 StringBuffer를 사용해서 이어붙이는게 좋음
+연산을 사용하여 합치는 건 좋지 않음.

잘못된 예

 value += map.get(morse[j]);
    }
 }
  return value;

올바른 예

sb.append(map.get(morse[j]));
    }
 }
  return sb.toString();
profile
I'm still hungry.

0개의 댓글