1. 3진법 뒤집기 - 개요
자연수 n을 3진법으로 만들어 뒤집고 뒤집은 수를 다시 10진법으로 맞추기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 풀이
function solution(n) {
let answer = 0;
let str = n.toString(3).split("").reverse().join("");
answer = parseInt(parseInt(str, 3).toString(10));
return answer;
}
정수를 toString, parseInt로 진법 변환할 수 있다는 것을 처음 알았다.
parseInt(string: string, radix?: number | undefined): number
toString(radix?: number | undefined): string
3. 숫자의 표현 - 개요
연속된 자연수들을 모두 더해서 n이 나오는 경우를 전부 찾아서 return
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
투포인터, 슬라이딩 윈도우방식으로 풀었다.
연속된 수들의 합 sum이 n보다 작다면 rt를 +1로 키우고 rt만큼 계속 더해준다.
sum이 n보다 커지면 lt를 -1로 줄이고 lt만큼 계속 줄여준다.
마지막에 n 자기 자신까지 +1 시켜주면 된다
function solution(n) {
let answer = 0;
let sum = 1;
let lt = 0;
let rt = 1;
while (lt !== n && rt !== n) {
if (sum === n) {
answer += 1;
lt += 1;
sum -= lt;
} else {
if (sum > n) {
lt += 1;
sum -= lt;
} else {
rt += 1;
sum += rt;
}
}
}
return answer + 1;
}
'알고리즘' 카테고리의 다른 글
[알고리즘] 튜플 js (0) | 2022.11.04 |
---|---|
[알고리즘] 위장 js (0) | 2022.11.04 |
[알고리즘] 3 x N 타일링 (0) | 2022.10.31 |
[알고리즘] 2 x n 타일링 js (1) | 2022.10.30 |
[알고리즘] 124나라의 숫자 js (0) | 2022.10.30 |