minghxx.blog
  • [프로그래머스] 모스부호(1)
    2023년 10월 20일 14시 30분 40초에 업로드 된 글입니다.
    작성자: 민발자
    728x90

    문제

    머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
    모스부호는 다음과 같습니다.
    
    morse = { 
        '.-':'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'
    }

     

    풀이

    import java.util.*;
    class Solution {
        public String solution(String letter) {
            String answer = "";
            // 모스부호
            Map<String, String> m = new HashMap<>();
            m.put(".-","a");
            m.put("-...","b");
            m.put("-.-.","c");
            m.put("-..","d");
            m.put(".","e");
            m.put("..-.","f");
            m.put("--.","g");
            m.put("....","h");
            m.put("..","i");
            m.put(".---","j");
            m.put("-.-","k");
            m.put(".-..","l");
            m.put("--","m");
            m.put("-.","n");
            m.put("---","o");
            m.put(".--.","p");
            m.put("--.-","q");
            m.put(".-.","r");
            m.put("...","s");
            m.put("-","t");
            m.put("..-","u");
            m.put("...-","v");
            m.put(".--","w");
            m.put("-..-","x");
            m.put("-.--","y");
            m.put("--..","z");
    
            String[] s = letter.split(" ");
            for(int i = 0; i < s.length; i++){
                answer += m.get(s[i]);
            }
            return answer;
        }
    }

     

    참고할만한 다른 사람 풀이

    String[] letters = letter.split(" ");
    for(String str : letters){
        answer += morse.get(str);
    }

    좀 더 간결한 for문!

    728x90
    댓글