-
1526. [JavaScript]가장 큰 금민수JavaScript_알고리즘/Bronze I 2024. 7. 16. 03:12
1. 문제
2. 접근 방법
- 시간 제한: 1초
- 메모리 제한: 128MB
- 구현
3. 자바스크립트 코드
const fs = require('fs') const input = fs.readFileSync('./1526.txt').toString().trim() const inputLength = input.length const N = Number(input) // 리스트 let ans = [] // 최대값 갱신 let max_value = 0 // 백트래킹으로 구현 function backtracking(start) { // 초기 조사한 input 길이보다 작은경우 if (start <= inputLength) { // 정답을 저장할 변수 const answer = Number(ans.join("")) // N 보다 answer이 작을때 max_value 값과 answer 비교 하여 갱신 if (answer <= N) { if (max_value < answer) { max_value = answer } } } else { return } // 4, 7 반복 for (let i of ['4', '7']) { ans.push(i) backtracking(start + 1) ans.pop() } } backtracking(0) console.log(max_value)
4. 문제를 풀고난 후 생각
- 백트래킹을 통해서 input 보다 작은 값의 경우 최대값을 갱신해 가며 문제를 해결하는 구조로 구현했다.
5. 문제를 푸는데 도움이 되는 지식
- 백트래킹
'JavaScript_알고리즘 > Bronze I' 카테고리의 다른 글
4344. [JavaScript]평균은 넘겠지 (0) 2024.06.17 2163. [JavaScript]초콜릿 자르기 (0) 2024.06.17 9506. [JavaScript]약수들의 합 (0) 2024.06.17