https://www.acmicpc.net/problem/10810
2024.10.30
js로 풀고있는데 현재까지의 코드는 이렇다.
//여러줄
const input = require('fs')
.readFileSync(process.platform === 'linux' ? '/dev/stdin' : './data.txt')
.toString()
.trim()
.split('\n')
.map(el => el.split(' '));
const N = input[0][0]; //바구니 개수
const M = input[0][1]; //몇번 담을건지
const list = new Array(N);
for (let a = 1; a <= M; a++) {
let start = input[a][0];
let end = input[a][1];
let k = input[a][2];
//바구니 덮어쓰기
for (start; start <= end; start++) {
list[start - 1] = k;
}
}
//비어있으면 0으로 채우기
for (let i = 0; i < N; i++) {
if (!list[i]) {
list[i] = 0;
}
}
console.log(list.join(' '));
자꾸 틀렸다는데 뭐가 틀린건지 모르겠다.
해당 문제를 GPT에게 주고 여러 입출력 예제를 요구한 후
그 입출력 예제들로 테스트했는데도 모두 동일하게 나오는데
왜 틀렸다는거지?
10.31
성공했다.
//여러줄
const input = require('fs')
.readFileSync(process.platform === 'linux' ? '/dev/stdin' : './data.txt')
.toString()
.trim()
.split('\n');
const [N, M] = input[0].split(' ').map(Number);
const list = new Array(N).fill(0);
for (let a = 1; a <= M; a++) {
let [start, end, k] = input[a].split(' ').map(Number);
//바구니 덮어쓰기
for (start; start <= end; start++) {
list[start - 1] = k;
}
}
console.log(list.join(' '));
맨 처음부터 모든 값을 배열로 가져와서 사용하는게 아닌
각 줄마다 공백을 기준으로 split해서 계산하기를 원하는 듯 하다.
그리고 각 값을 Number로 변환을 해줘야 하나보다.
js로 푸는건 처음이라 블로그들을 참고했는데 이런식이군.