[백준|node.js] 1032번, 명령 프롬프트 (for문) - 문자열, 구현

muz·2022년 7월 13일
0
post-thumbnail

✍🏻 문제 확인하기

접근 방법

  • 각 input의 같은 index에 있는 값을 비교해서 모두 같으면 해당 값을 출력, 하나라도 다르면 ?를 출력하기

풀이

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : './data/1032.txt';
let input = fs.readFileSync(file).toString().split('\n');

let N = input.shift()*1;
let fileList = [];
for(let i = 0; i < N;i++) {
    fileList.push(input[i]);
}

console.log(solution(fileList));

function solution(arr) {
  let answer = '';

  for(let i = 0; i < arr[0].length; i++) {
    let tmp = arr[0][i];
    let count = 0;
    
    for(let j = 0; j < arr.length; j++) {
        if(tmp !== arr[j][i]) {
            answer += '?';
            break;
        } else {
            count++;
        }
        if(count === arr.length) answer += tmp;
    }
  }
  return answer;
}

해설

  • count를 이용해 input값으로 들어온 길이만큼 모두 비교했는지 판단함
  • 0부터 input의 길이까지 반복하여 한 글자씩 비교하기
  • [0][i]의 값과 arr[j][i]의 값이 다르면 '?'를 붙여주고
  • 값이 같으면 [0][i]값을 이어 붙여주기
profile
Life is what i make up it 💨

0개의 댓글