[프로그래머스 코딩테스트 연습문제] 모스부호(1) 문제 풀이 with 자바스크립트(Javascript) & 자바(Java | 추가 예정)

Re_Go·2024년 6월 26일
0

코딩테스트연습

목록 보기
80/106
post-thumbnail

1. 첫번째 문제 풀이(2024-06-26)

해당 문제는 입력된 문자를 split으로 공백을 기준으로 쪼개어 배열에 각각 저장한 후 그 길이만큼 for문을 돌리고, 다시 for문을 morse 객체의 길이만큼 돌리면서 배열 하나 하나의 값이 객체 하나 하나의 키의 이름과 같을 때 그 값을 result에 누적 연산 시켜준 뒤 for문이 다 끝나면 해당 result문을 반환해 주는 로직으로 해결했는데요.

객체를 이용하다보니 for문 뿐만 아니라 객체의 객체의 키에 접근하는 방법을 사용해야 하는 번거로움이 있다만, for-in 루프를 이용하면 그것도 어렵지는 않아서 무리 없이 해냈습니다.

  1. 자바스크립트 버전
function solution(letter) {
    let 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'
    }

    let words = letter.split(" ");
    let result = "";
    for(let i = 0 ; i < words.length ; i++){
        for(let key in morse){
            if(words[i] === key){
                result += morse[key];
            }
        }
    }
    return result;
}

그런데 문제는 자바 버전이라.... (자바는 HashMap을 이용해야 해서 좀 복잡합니다.) 아직 자바 버전은 배우는 중이라 아마 조만간 코드를 추가할 것 같습니다. (두 언어를 공부하다보니 자바가 이렇게 엄격한 언어일줄은...) 😂

  1. 자바 버전 (추가 예정)

2. 자바와 자바스크립트 풀이 차이점

(추가 예정)

profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글