알고리즘 풀이

[JAVASCRIPT] 백준 1032번 문제 풀이

Lv1_junior_dev 2023. 2. 23. 20:09

❗ 풀이

let [N, ...input] = require('fs').readFileSync('dev/stdin').toString().trim().split("\n").map((line)=> line.replace(/\n|\r|\s*/g, ""));

let differentPart = '';

for (let i = 0; i < input[0].length; i++) {
  const char = input[0][i];
  if (input.some((str) => str[i] !== char)) {
    differentPart += '?';
  } else {
    differentPart += char;
  }
}

console.log(differentPart);

1. split("\n") 하였을 때 배열내에 문자열에 개행 문자도 추가되어 replace를 이용하여 개행 문자 제거

2. some()을 이용하여 첫 번째 문자열을 기준으로 하나씩 문자를 비교

3. 모든 문자열에서 해당 위치의 문자가 일치하지 않으면 ?를 differentPart에 추가

4. 일치한다면 해당 문자를 differentPart에 추가

5. 하나씩 문자를 비교해 나가면 differentPart에는 모든 문자열들 중 다른 부분이 ?로 대체된 하나의 문자열이 담기게 됨

6. 결과 출력