본문 바로가기

알고리즘

2018 KAKAO BLIND RECRUITMENT>[3차]n진수 게임

728x90

[문제]

https://school.programmers.co.kr/learn/courses/30/lessons/17687?language=javascript 

 

프로그래머스

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

programmers.co.kr

[나의코드]

const solution=(n,t,m,p)=>{
  let tempArray=[]
  let num=0
  while(tempArray.join("").length<t*m){
    const numToStringN=parseInt(num).toString(n)
    tempArray.push(numToStringN)
    num++
  }
  const tempString=tempArray.join("")
  let result=[]
  for(i=0;i<tempString.length;i++){
    if((i%m)===p-1&&result.length<t){
      result.push(tempString[i])
    }
  }
  return result.join("").toUpperCase()
}

단, 10~15는 각각 대문자 A~F로 출력한다 <= 이부분에서 시간이 걸릴줄 알았는데 예상외로, 이부분은 n진수로 바꾸면 자동으로 해결이 되는 부분이어서 쉽게 통과

[시간단축코드]

const solution=(n,t,m,p)=>{
  let str=""
  let num=0
  while(str.length<t*m){
    const numToStringN=parseInt(num).toString(n)
    str=str+numToStringN
    num++
  }
  let result=[]
  for(i=0;i<str.length;i++){
      if((i%m)===p-1&&result.length<t){
      result.push(str[i])
    }  
  }
  return result.join("").toUpperCase()
}

728x90