[Programmers] 모음사전 - JavaScript

Joosi_Cool·2023년 3월 13일
1

Programmers

목록 보기
40/98
post-thumbnail

문제설명



설계 과정

이를 풀기 위해선 규칙을 찾는 것이 중요했다. 본인이 찾은 규칙은 아래와 같다.

  • 규칙
  1. 5자리가 아니라면, A를 채운다.
  2. 첫번째 자리에서 사전 순으로 업그레이드를 한다.
  3. 이때 U라면 그 공간이 빈공간이 되고, 다음 자리 값이 업그레이드 된다.
  • 설계 과정
  1. 5자리 배열 만든다.
  2. num을 계속 세줄건데, 입력 word가 같아질때까지 아래과정 수행
  3. 빈 공간이 있다면 A를 추가
  4. 빈 공간이 없다면, 업그레이드
    -> 이때 업그레이드 할게 U라면 그 부분을 빈공간으로 두고, 다음 자리값을 업그레이드


정답 코드

function solution(word) {
    var answer = 0;
    var num = new Array(5).fill("");
    var alphaArr = ["U","O","I","E","A"];
    word = word.split("");

    while(true){
        //값이 없는게 있다면

        //입력값과 배열을 합쳤을때 같다면 리턴
        if(num.join("")===word.join(""))break;
        //num에 공백이 있다면 A로 채움
        if(num.indexOf("")!==-1){
            num[num.indexOf("")] = "A";
            answer++;
        }
        // 전부 채워졌다면
        else{
            //뒤부터 체크
            var i = 4;
            while(true){
                //요소가 U라면 삭제하고, 다음 꺼를 체크
                if(num[i]==="U"){
                    num[i] = "";
                    i--;
                }
                else{
                    // 체크 한 값을 업그레이드
                    num[i] = alphaArr[alphaArr.indexOf(num[i])-1];
                    answer++;
                    break;
                }
            }
        }
    }
    

    return answer;
}


결과



profile
집돌이 FE개발자의 노트

1개의 댓글

comment-user-thumbnail
2023년 3월 14일

매번 좋은 풀이 진심으로 감사드립니다 잘 참고하고 있어요!

답글 달기