코딩응애의 개발블로그

코딩 테스트 대비 4주 챌린지 JS (백준 2557, 1000, 2558, 10950, 10951, 10952) 본문

알고리즘 문제

코딩 테스트 대비 4주 챌린지 JS (백준 2557, 1000, 2558, 10950, 10951, 10952)

이너멜 2022. 5. 10. 23:58

백준 1000번 

오랜만에 풀다 보니 입력 코드 구현할 때 살짝 헷갈렸음 tlqk; 

 

백준 10950번 

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(__dirname + '/input.txt').toString().trim().split('\n');

const testcase = [];
for (let i = 1; i <= +input[0]; i++) {
    testcase.push(input[i].split(' ').map(value => +value));
}
solution(+input[0],testcase);

function solution(T,testcase) {
    // for(let i =0; i<T; i++) {
    //     const A = testcase[i][0];
    //     const B = testcase[i][1];
    //     console.log(A+B)
    // }
    for(let i =0; i<T; i++) {
        // console.log(Number(testcase[i][0]) + Number(testcase[i][1]))
        console.log(testcase[i][0] + testcase[i][1])
    }
}
문제에 테스트케이스 개수 T를 생각을 못하고 testcase만 만들어서 틀렸음 무슨 말이냐면 저 for문을 
for(let i =0; i<testcase; i++) {
        console.log(testcase[i][0] + testcase[i][1])
    }

 

이렇게 써서 아무런 값도 출력이 안됬었음 testcase 대신 T를 넣거나 아니면 testcase.length를 했어야 했는데..

저 for문 주석 처리한 거는 내 예전 풀이이고 밑에 console 주석 처리한 거는 저렇게 해도 같은 결과 나온다는 의미.

 

백준 10952번 

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(__dirname + '/input.txt').toString().trim().split('\n');

const testcase = [];
for (let i = 0; i < input.length; i++) {
    testcase.push(input[i].split(' ').map(value => +value))
}
solution(testcase);

function solution(testcase) {
    for (let i = 0; i < input.length; i++) {
        const A = testcase[i][0];
        const B = testcase[i][1];
        if (A + B === 0) {
            break;
        }
        // if (A === 0 && B === 0) {  라매개발자님 유튜브 참조  
        //     break;
        // }
        console.log(A + B)
    }
}

입력에 마지막 숫자들은 0 0 이고 출력은 이 둘을 더한 값을 출력을 안 해서 if문을 이용해서 둘이 더한 값이 0일 때 break 하는 식으로 했는데 생각해보니 그냥 A, B 값들이 0일 때 break 하는 게 나은 것 같다. 

A, B 범위가 정해져 있긴 하지만.. 

 

그리고 여기에는 안썼지만 10951번 같은 문제는 그냥 for문으로 풀었는데 예전에 푼 풀이를 보니 이게 단계별로 풀어보기 파트에 while문 파트에 있어서 그런지 while 문으로 풀었었다.
앞으로 이런 문제들은 그냥 이런 거 관계없이 풀 수 있으면 푸는 방식으로 접근할 예정이다.

물론 내가 전에 어떻게 풀었는지랑 다른 사람들 풀이는 볼 것이다.

 

오랜만에 다시 알고리즘 문제들 풀어본 소감은 일단 여태 알고리즘 안 푼 업보라고 생각하고 감을 찾는데 더 집중해야겠다.

진행률 6/155 대략 3.8%

 

 내가 풀면서 못 풀었거나 헷갈려다거나 틀렸다거나 아니면 입출력 문제에서만 해당되는 사항이지만 10분 안에 못 풀었다거나 하는 문제들만 정리한 거임 

Comments