[백준 알고리즘] Node.js 1526. 가장 큰 금민수

2023. 3. 16. 14:52코딩연습

1. 문제

https://www.acmicpc.net/problem/1526

 

1526번: 가장 큰 금민수

첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

2. 풀이방법

1) 4와 7로 이루어진 수 중 가장 큰 수를 찾기 위해 입력받은 숫자부터 내려가는 방식으로 생각.

2) 이후 자리 수 별로 잘라서 그 숫자가 4 또는 7인지 확인하고 새로운 배열에 true, false로 담아둠.

3) 배열에 false 가 없다면 그 숫자가 가장 큰 숫자이기 때문에 반복문을 멈추고 출력!

const inputs = +require('fs').readFileSync('/dev/stdin').toString().trim();

let answer = 0;
for(let i = inputs; i >= 0; i--){
    let number = i.toString().split('').map(Number);
    let numberChk = [];
    
    for(let j = 0; j < number.length; j++){
        if(number[j] === 4 || number[j] === 7){
            numberChk[j] = true;
        } else {
            numberChk[j] = false;
        }
    }
    
    if(!numberChk.includes(false)) {
        answer = i;
        break;
    }
}

console.log(answer);

 

3. 정리

includes() 메서드는 배열이 특정 요소를 가지고 있는지 판별한다.

let arr = [1, 2, 3]

console.log(arr.includes(2)); // true
console.log(arr.includes(4)); // false

 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

 

Array.prototype.includes() - JavaScript | MDN

includes() 메서드는 배열이 특정 요소를 포함하고 있는지 판별합니다.

developer.mozilla.org