문제

풀이
let fs = require('fs');
let input = fs.readFileSync('JS/example.txt').toString().split('\n');
let A = input[0].trim();
let B = input[1].trim().split("");
let result=0;
for(let i=B.length-1;i>=0;i--){
let num =A*B[i]*(10**(B.length-i-1));
console.log(A*B[i]);
result+=num;
}
console.log(result);
문제를 풀고 다른사람들의 코드를 보니 내 코드의 문제점이 있다.
result값을 단순히 A와B를 곱한것을 출력하면 되는데, 곱셈의 과정으로 생각해서 각 줄의 숫자들을 모두 더하는 방식으로 풀었다. 이렇게 되면 굳이 필요없는 코드가 추가되는 것이다.
그래서 다시 수정해서 문제를 풀어보았다.
let A = input[0].trim();
let B = input[1].trim();
for(let i=B.length-1;i>=0;i--){
console.log(A*B[i]);
}
console.log(A*B);
이렇게 푸니 코드가 훨씬 간결했다.
그리고 문자열도 인덱스로 접근 가능한데 왜 split()을 사용했는지 모르겠다. ㅎ..
정리
너무 복잡하게 생각해서 단순한 코드로 작성할 수 있는 문제를 놓쳤다. 그리고 기본적인 문법, 문자열도 인덱스로 접근할 수 있다는 것을 놓쳤다.
'코테' 카테고리의 다른 글
| [백준] 24313번 : 알고리즘 수업 - 점근적 표기 1 -Java(자바) (2) | 2025.06.30 |
|---|---|
| [백준] 24267번 : 알고리즘 수업 - 알고리즘의 수행 시간 6 - 자바(JAVA) (0) | 2025.06.29 |
| [백준] 2480번 : 주사위 세개 - Java(자바) (2) | 2025.05.04 |
| [백준] 2525번 : 오븐 시계 - Java(자바) (1) | 2025.04.30 |
| [백준] 2884번 : 알람 시계 - Java(자바) (0) | 2025.04.29 |