Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- redux-saga
- createSlice
- 테코테코
- 자바
- java
- SW
- maeil-mail
- react-redux
- sw expert academy
- axios
- 이코테
- redux-toolkit
- 항해99
- 코딩테스트합격자되기
- react
- 항해플러스
- Python
- 프로그래머스
- useDispatch
- Get
- C++
- programmers
- 리액트
- Algorithm
- redux
- 알고리즘
- 매일메일
- JavaScript
- json-server
- react-router
Archives
- Today
- Total
Binary Journey
[Javascript][메모] 프로그래머스 3진법 본문
반응형
https://programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
문제는 이렇다.
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
내 식은 이랬다.
function solution(n) {
let ternary = [];
let answer = 0;
while (n >= 1) {
if (n > 1) {
ternary.push(n % 3);
} else {
ternary.push(n);
}
n = parseInt(n / 3);
}
for (let i = 0; i < ternary.length; i++) {
answer += ternary[i] * Math.pow(3, ternary.length - 1 - i);
}
return answer;
}
근데 다른 사람의 풀이를 보니 한 줄로 끝나더라.
const solution = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
}
toString으로 3진법 수 만들어준 뒤 한글자씩 풀어서 리스트 만들고 뒤집어서 String으로 만든 뒤 다시 10진법으로..
도른자덜,,,,,,
반응형
'프로그래머스 > 메모' 카테고리의 다른 글
[Javascript][메모] 프로그래머스 음양 더하기 (0) | 2021.06.08 |
---|---|
[Javascript][메모] 프로그래머스 이진변환 반복하기 (0) | 2021.06.08 |
[Javascript][메모] 프로그래머스 피보나치 수, 2 x n 타일링 (0) | 2021.04.22 |