본문 바로가기

알고리즘

2022 kakao tech internship > 성격 유형 검사하기

728x90

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

 

프로그래머스

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

programmers.co.kr

[나의코드]

function solution(survey,choices){
  let map=new Map()
  let types=["R","T","C","F","J","M","A","N"]
  for(let i=0;i<types.length;i++){
    let indicator=types[i]
    map.set(indicator,0)
  }
  for(let i=0;i<survey.length;i++){
    let [a,b]=survey[i].split("")
    let choice=choices[i]
    switch (choice){
      case 1 : map.set(a,map.get(a)+3) 
        break; 
      case 2 : map.set(a,map.get(a)+2) 
        break; 
      case 3 : map.set(a,map.get(a)+1) 
        break; 
      case 4 :
        break; 
      case 5 : map.set(b,map.get(b)+1) 
        break; 
      case 6 : map.set(b,map.get(b)+2) 
        break; 
      case 7 : map.set(b,map.get(b)+3) 
        break; 
      default: 
    }
  }

  let array=[...map]
  let temp=[]
  for(let i=0;i<array.length;i=i+2){

    let first=array[i][1]
    let second=array[i+1][1]
  
    if(first>second){
      temp.push(array[i][0])
    }else if(first===second){
      if(array[i][0].charCodeAt()<array[i+1][0].charCodeAt()){
        temp.push(array[i][0])
      }else{
        temp.push(array[i+1][0])
      }
     
    }else{
      temp.push(array[i+1][0])
    }
  }
return temp.join("")
}
728x90