오늘은 어제에 이어 반복문 두 번째 시간이다 ㅎㅎ.
문제 8393번
https://www.acmicpc.net/problem/8393
8393번: 합
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
www.acmicpc.net
반복문을 1부터 n까지 돌려서 sum 변수에 더해주면 될 것 같다.
const fs = require('fs');
//백준에 제출할 때 써야하는 코드
const readFileSyncAdress = '/dev/stdin';
//테스트
//const readFileSyncAdress = 'input.txt';
const input = fs.readFileSync(readFileSyncAdress).toString();
let sum=0;
for(let i = 1; i<=input; i++){
sum+=i;
}
console.log(sum);
처음에 Number로 안 바꿔도 되나라는 생각이 들었는데 덧셈 연산자를 수행할 때 사용하는 변수는 sum과 i니까(둘 다 number) 잘 수행되는 것 같다.
문제 25304번
https://www.acmicpc.net/problem/25304
25304번: 영수증
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것
www.acmicpc.net
일단 줄을 기준으로 입력받고 다음에 공백을 기준으로 나뉜 부분은 나눠서 변수에 넣어주면 되겠다.
여기서 각 물건의 가격과 개수를 나눌 때는 i를 2부터 시작하여 N+2가 되기 전까지 반복문을 돌려줘야한다. 왜냐하면 i를 인덱스로 넣어줄건데, 각 물건의 가격과 개수는 인덱스 2부터 시작하기 때문이다.
const fs = require('fs');
//백준에 제출할 때 써야하는 코드
const readFileSyncAdress = '/dev/stdin';
//테스트
//const readFileSyncAdress = 'input.txt';
const input = fs.readFileSync(readFileSyncAdress).toString().split('\n');
let X=Number(input[0]); //총 금액
let N=Number(input[1]); //구매한 물건의 종류의 수
let a,b,sum=0;
for(let i = 2; i<N+2; i++){
a=Number(input[i].split(' ')[0]); //각 물건의 가격
b=Number(input[i].split(' ')[1]); //각 물건의 개수
sum+=(a*b);
}
console.log(sum===X ? 'Yes' : 'No');
처음에 parseInt로 하니까 런타임 에러(ReferenceError)가 났다. 그래서 뭐가 잘못된지 모르겠어서 Number로 바꿨다. 그렇게 풀리고 계속 쳐다보니... 왜 저 에러가 발생했는지 알게 되었다.
그건 바로...
parseInt를 paresInt라고 작성했기 때문이다(하하...).
...
이런...
그래서 처음에 작성했던 코드를 고쳐주면 이것도 성공~~
const fs = require('fs');
//백준에 제출할 때 써야하는 코드
const readFileSyncAdress = '/dev/stdin';
//테스트
//const readFileSyncAdress = 'input.txt';
const input = fs.readFileSync(readFileSyncAdress).toString().split('\n');
let X=parseInt(input[0]); //총 금액
let N=parseInt(input[1]); //구매한 물건의 종류의 수
let a,b,sum=0;
for(let i = 2; i<N+2; i++){
a=parseInt(input[i].split(' ')[0]); //각 물건의 가격
b=parseInt(input[i].split(' ')[1]); //각 물건의 개수
sum+=(a*b);
}
if(sum==X){
console.log('Yes');
}else{
console.log('No');
}
이런 실수는 하지말자...
[참고]
https://velog.io/@hansong0222/JS-%EB%B0%B1%EC%A4%80-25304-%EC%98%81%EC%88%98%EC%A6%9D
'백준 > JavaScript' 카테고리의 다른 글
[JS] 백준 반복문 - 마지막 이야기 (1) | 2024.01.10 |
---|---|
[JS] 백준 반복문 - 세 번째 이야기 (1) | 2024.01.09 |
[JS] 백준 반복문 - 첫 번째 이야기 (2) | 2024.01.07 |
[JS] 백준 조건문 - 마지막 이야기 (4) | 2024.01.06 |
[JS] 백준 조건문 - 두 번째 이야기 (2) | 2024.01.05 |