코딩테스트/Softeer 연습 문제

[Javascript] 전광판

dev_swH 2023. 8. 3. 10:14

레벨2만 되어도 너무 어렵다.....!!! 어떡하냐!!!

어떻게 풀어나가야겠다라는 전체적인 그림까지는 그래도 대강 그려낼 수 있는 것 같은데

이런 노가다를 한다고? 하면서 제거한 방법이 사실 정답이라든가,

방법 자체를 떠올리지 못하는 게 늘 문제인 듯....

 

전광판에 대한 해설은 Python만 존재해서 자바스크립트로 푼 코드를 첨부한다.

그리고 소프티어에서 코테할 때 rl.close()는 아예 쓰지 말아야하더라.

그걸 쓰면 제대로 입력을 못 받는다...이유는 모르겠다 node.js를 모르니까 ㅇ<-<

 

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

const light = {
    '0''1110111',
    '1''0010001',
    '2''0111110',
    '3''0111011',
    '4''1011001',
    '5''1101011',
    '6''1101111',
    '7''1110001',
    '8''1111111',
    '9''1111011',
    ' ''0000000'
};

let input = [];

rl.on('line'function(line) {
    input.push(line);
}).on('close'function() {
    input = input.slice(1).map(v => v.split(' ').map(v => v.padStart(5' ')));
    let count = 0;
    input.forEach((test, i) => {
        const [a, b] = test;
        for (i = 0; i < 5; i++) {
            for (j = 0; j < 7; j++) {
                light[a[i]][j] !== light[b[i]][j] ? count++ : count;
            }
        }
        console.log(count);
        count = 0;
    });
    process.exit();
})
 

전구가 전부 다 꺼진 상태를 처음에는 'off'로 적고

아무 생각 없이 padStart에 빈 문자열이 아니라 0을 넣는 바람에

오류를 찾기까지 어마어마한 시간이 걸렸다ㅠㅠ

양쪽을 빈 문자열로 맞춰서 빈 문자열도 비교가 되게 했어야 하는데

나는 0으로 자릿수를 맞춰버려서 off는 아예 사용이 안 되고, 전구가 꺼진 부분은 '0'으로 인식되면서 결과값이 더 많이 나오고 있었던 거였다.

padStart는 그냥 padStart(5)로 작성해도 된다, 디폴트가 빈 문자열이니까.

'코딩테스트 > Softeer 연습 문제' 카테고리의 다른 글

[Javascript] 성적 평균  (0) 2023.08.04
[Javascript] 지도 자동 구축  (0) 2023.08.04
[Javascript] 금고 털이  (0) 2023.08.04
[Javascript] 8단 변속기  (0) 2023.08.03
Softeer 코딩테스트 연습 문제 체험  (0) 2023.07.27