백준 10810 javascript

인지용·2024년 10월 30일
0

알고리즘

목록 보기
1/46

문제

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로 푸는건 처음이라 블로그들을 참고했는데 이런식이군.

profile
한-줄

0개의 댓글