문제

  • 디지털화된 텍스트의 에러를 수정한다.

Errors

  • O0로 잘못 해석되었다.
  • I1로 잘못 해석되었다.
  • S5로 잘못 해석되었다.

풀이 01

function correctError(str) {
  let result = '';

  for (let i = 0; i < str.length; i++) {
    if (str[i] === '0') {
      result += 'O';
    } else if (str[i] === '1') {
      result += 'I';
    } else if (str[i] === '5') {
      result += 'S';
    } else {
      result += str[i];
    }
  }
  return result;
}

correctError('PAR15');     // PARIS
correctError('L0ND0N');    // LONDON
correctError('C0DEWAR5');  // CODEWARS

풀이 02

function correctError(str) {
  let result = [];

  for (let i = 0; i < str.length; i++) {
    if (str[i] === '0') {
      result.push('O');
    } else if (str[i] === '1') {
      result.push('I');
    } else if (str[i] === '5') {
      result.push('S');
    } else {
      result.push(str[i]);
    }
  }
  return result.join('');
}

correctError('PAR15');     // PARIS
correctError('L0ND0N');    // LONDON
correctError('C0DEWAR5');  // CODEWARS

풀이 03

function correctError(str) {
  return str.replace(/0/g, 'O').replace(/1/g, 'I').replace(/5/g, 'S');
}

correctError('PAR15');     // PARIS
correctError('L0ND0N');    // LONDON
correctError('C0DEWAR5');  // CODEWARS

정규표현식 (RegExp)

  • replace(): 대응되는 문자열을 찾아 다른 문자열로 치환한다.
  • g: 전역 검색