본문 바로가기
  • Let's study
PS/Programmers

[프로그래머스 Lv.0] 모스부호(1)(Java)

by 코딩고수이고파 2026. 7. 22.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120838

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

풀이

알파벳 a부터 z까지의 모스부호를 순서대로 배열에 저장한다.

입력 문자열은 각 모스부호가 공백으로 구분되어 있으므로 split(" ")을 이용해 모스부호를 하나씩 분리한다.

이후 분리한 모스부호를 배열에서 찾아 해당하는 인덱스를 구하고, 인덱스를 알파벳으로 변환하여 결과 문자열에 이어 붙인다.

모스부호 배열의 인덱스는 a부터 z의 순서와 동일하므로 인덱스에 'a'의 아스키 코드인 97을 더하면 해당 알파벳으로 변환할 수 있다.

answer += (char)(i + 97);
 

예를 들어 인덱스가 0이면 'a', 2이면 'c'가 된다.

코드

class Solution {
    public String solution(String letter) {
        String answer = "";
        String[] morse = {
            ".-", "-...", "-.-.", "-..", ".", "..-.",
            "--.", "....", "..", ".---", "-.-", ".-..",
            "--", "-.", "---", ".--.", "--.-", ".-.",
            "...", "-", "..-", "...-", ".--", "-..-",
            "-.--", "--.."
        };
        
        String[] words=letter.split(" ");
        
        for(String w : words){
            for(int i=0;i<morse.length;i++){
                if(w.equals(morse[i])){
                    answer+=(char)(i + 97);
                }
            }
        }
        
        return answer;
    }
}

댓글