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
복사했습니다!