프로그래머스 | 2018 KAKAO [3차] 코테_JS
난이도 : Level. 2
언어 : Javascript
출제 내역 : 2018 KAKAO BLIND RECRUITMENT
전체 풀이 코드 👈🏻 클릭시 Github로 이동
❓ Question 1
n진수 게임
- 내가 말해야 하는 숫자를 출력해보자
📝 My Solution 1
function solution(n, t, m, p) {
let answer = '';
let nums = '';
for (let i = 0; i<=t*m; i++) {
nums += i.toString(n)
if (nums.length < t*m) {
continue;
} else if (nums.length >= t*m) {
break;
}
}
우선 0부터 시작하는 수를 n 진수로 변환해 주고,
변환해서 합친 문자들이 숫자의 개수와 참가 인원을 곱한 만큼의 길이 보다 크면
해당 반복문을 멈춰줍니다.
for (let i = p-1; i<t*m; i++) {
if (i % m === p-1) {
answer += nums[i]
}
}
return answer.toUpperCase();
}
그 뒤, 자신의 순서에 해당하는 문자열을 추출해 답을 도출합니다.
결과
❓ Question 2
압축
- 입력된 문자열을 사전방식으로 기록하는 압축 기술을 구현
📝 My Solution 2
function solution(msg) {
let answer = [];
let result = [];
let msgArr = msg.split('')
const dic = ['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'];
for (let i = 0; i<msgArr.length; i++) {
if (dic.indexOf(msgArr[i]+msgArr[i+1]) === -1) {
result.push(msgArr[i]);
dic.push(msgArr[i]+msgArr[i+1]);
} else {
let newStr = msgArr[i]+msgArr[i+1];
msgArr[i+1] = newStr;
}
}
먼저 들어온 문자열을 각각 배열로 쪼개주고,
사전에 해당하는 배열을 하나 만들어 줍니다.
그 뒤, 조합한 글자가 사전 배열에 없으면 사전에 넣어주고,
그 앞 글자를 결과 배열에 넣어 줍니다.
있다면 조합의 두번째 글자를 조합된 글자로 변경해 줍니다.
for (let i = 0; i<result.length; i++) {
answer.push(dic.indexOf(result[i])+1)
}
return answer;
}
그렇게 나온 결과를 사전 인덱스에서 찾아서 인덱스 +1을 해줘서
값을 도출합니다.
결과
Author And Source
이 문제에 관하여(프로그래머스 | 2018 KAKAO [3차] 코테_JS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sstaar91/Algorithm-Programmers-2018-Kakao-3rd저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)