본문 바로가기

알고리즘

프로그래머스 > 2018 KAKAO BLIND RECRUITMENT > [3차] 압축

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/17684#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[나의 코드]

function solution(msg){
 let array =["*","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 answer=[];
let count = 0;
for(let i = 0; i < msg.length; i++){
  let minSplittedWord = msg.split("")[count];
  while(array.findIndex((el)=>el===minSplittedWord)!==-1){
   
       minSplittedWord = minSplittedWord+msg.split("")[count+1];
    count += 1;
    
   
  }
  if(minSplittedWord){
    if(minSplittedWord.toUpperCase()!==minSplittedWord){
      let lastIndex =  minSplittedWord.split("undefined")[0]
      array.push(lastIndex)
      answer.push(array.findIndex((el) => el === lastIndex));
  
    }else{
       array.push(minSplittedWord);
    let dd = minSplittedWord.slice(0, minSplittedWord.length - 1)
    answer.push(array.findIndex((el) => el === dd));
    }
    
  }
}

return answer;
  }

일단 시간 없어서 다음 시간에 리팩토링 하는 것으로...(변수명 엉망진창이지만 너무 졸려서 다음 기회에...)

while 문 안에서 if(msg.split("")[count+1]!==undefined)<= 를 조건문으로 넣어서 애초에 undefined인 글자는 넣어주고 싶지 않았건만 이상하게 whilte 문 안에서 조건문만 넣으면 시간이 너무 오래 걸려서 다음으로 넘어가지가 않아서 밑에서 그 후처리를 해주느라 코드가 굉장히 더럽게 작성되었다.

 

문제 내용도 ㄹㅇ 이해 안되서 입출력 예시보고 그거 그대로 하드코딩한다는 심정으로 작성한듯...

 

 

 

728x90