1. 문제
입력 형식
입출력 예
n | t | m | p | result |
2 | 4 | 2 | 1 | "0111" |
16 | 16 | 2 | 1 | "02468ACE11111111" |
16 | 16 | 2 | 2 | "13579BDF01234567" |
2. 정답 풀이
풀이 전략
- toString 메서드의 radix를 사용
function solution(n, t, m, p) {
let str = ''; // n진 숫자
// t * m : 총 인원의 수 만큼 n진 숫자 str에 추가
for (let i=0; i<t*m; i++) {
str += i.toString(n);
}
// str: n진수로 변환해 t*m 보다 길어져, slice로 t*m까지만 슬라이싱
// reduce 메서드로 순회하며 p(튜브 순서)에 해당하는 문자만 추가해 리턴
const answer = str.toUpperCase().slice(0,t*m).split('').reduce((acc, cur, idx) => {
if (idx % m === p-1) return acc + cur;
else return acc;
}, '')
return answer;
}
'코딩 테스트 > 프로그래머스(LV2)' 카테고리의 다른 글
[프로그래머스] k진수에서 소수 개수 구하기 (LV2 - JavaScript) (1) | 2024.11.30 |
---|---|
[프로그래머스] 방문 길이 (LV2 - JavaScript) (3) | 2024.11.29 |
[프로그래머스] [3차] 압축 (LV2 - JavaScript) (1) | 2024.11.25 |
[프로그래머스] 모음사전 (LV2 - JavaScript) (1) | 2024.11.21 |
[프로그래머스] 롤케이크 자르기 (LV2 - JavaScript) (2) | 2024.11.20 |