[boj] 2877 4와 7

🔥·2024년 2월 4일

문제

[boj] 2877 4와 7


풀이

4와 7로 이루어진 수를 보면

  • 1자리 수: 4, 7 -> 2개
  • 2자리 수: 44, 47, 74, 77 -> 2^2개
  • 3자리 수: 444, ... , 777 ->2^3개
    ...

시도 1
- 4를 0, 7을 1로 두면 이진수 계산과 동일하므로 먼저 구하려는 수의 자릿수를 digit()함수로 구한다
- 구한 자릿수에서 시작, 남은 만큼을 더한다

이 방법은 틀렸습니다 해결을 못했다...

다른 방법도 시도했으나 막혀서 결국 블로그 참고 >> 참고 링크
n번째 수를 찾으려면
1. n+1을 이진수로 바꾸고
2. 맨 앞자리를 자른 다음
3. 0을 4로, 1을 7로 바꾼다


코드

javascript

// boj 2877 4와 7
// implementation
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const k = input[0].split(" ").map(Number);

let result = (parseInt(k) + 1).toString(2);
result = result.replace(/0/g, "4").replace(/1/g, "7");
result = result.slice(1); //맨 앞자리
console.log(result);

0개의 댓글