본문 바로가기
코딩테스트 연습/프로그래머스 Lv.0

프로그래머스 코딩테스트 lv.0 - 모스 부호 (1). (Java)

by 트레비봄 2023. 7. 29.
728x90

문제 설명
입출력 예 (위의 사진 포함)

class Solution {
    public String solution(String letter) {
        String[] morse = {".-","-...","-.-.","-..",".","..-.",
                "--.","....","..",".---","-.-",".-..","--","-.",
                "---",".--.","--.-",".-.","...","-","..-","...-",
                ".--","-..-","-.--","--.."};
        String[] morseString;
        morseString = letter.split(" ");
//      letter 문자열을 공백을 기준으로 분리하여 'morseString' 배열에 저장.   
        StringBuilder sb = new StringBuilder(); // sb 객체 생성.
        for (String word : morseString) { // morseSTring 배열에 있는 각각의 모스 부호에 대해 반복.
            for (int i = 0; i < morse.length; i++) {
                if (word.equals(morse[i])) sb.append(Character.toString(i + 'a'));
//      현재 반복중인 'word''morse' 배열에 'i' 번째 요소를 비교.
//      만약 두 문자열이 같다면, 해당 모스 부호가 영어 알파벳으로 어떤 문자에 해당하는지를 'Character.toString(i + 'a')' 를사용하여 찾고, 'sb'에 추가한다.                
            }
        }
        return sb.toString();
    }
}

* 내가 1일 1코테 하는 과정 중에 개인적으로 가장 어려웠던 문제.

* 코드를 봐도 이해가 제대로 안되기도 해서 코드 리뷰만 20분 한 것 같다.

* 다른 분들은 morse.put 으로 시작하셨던데 이 과정도 시간이 되면 한 번 공부해야겠다.

* 분명 부캠 할 때 비슷한 문제를 봤었는데.. 기억이 안나는 것 보면 제대로 공부하고 있나 싶기도하다.. (자기반성..)

 

230729 학습.

728x90