코딩연습
[백준 알고리즘] Node.js 1343. 폴리오미노
니 뽀
2023. 3. 29. 15:34
1. 문제
https://www.acmicpc.net/problem/1343
1343번: 폴리오미노
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
www.acmicpc.net
2. 풀이
- replace() 메서드를 이용해서 XXXX 와 XX를 치환한다.
const inputs = require('fs').readFileSync('/dev/stdin').toString().trim();
let copyInputs = inputs;
copyInputs = copyInputs.replace(/XXXX/g,'AAAA');
copyInputs = copyInputs.replace(/XX/g,'BB');
if(copyInputs.includes('X')){
console.log(-1)
} else {
console.log(copyInputs)
}
3. 정리
- 처음 코드는 정규식을 사용하지 않고 작성하였다.
const inputs = require('fs').readFileSync('/dev/stdin').toString().trim();
let copyInputs = inputs;
for(let i = 0; i < 25; i++){
copyInputs = copyInputs.replace('XXXX','AAAA');
copyInputs = copyInputs.replace('XX','BB');
}
if(copyInputs.includes('X')){
console.log(-1)
} else {
console.log(copyInputs)
}
임의로 i 를 만들어 반복문을 사용하여 replace() 메서드를 연속으로 사용하도록 작성하였었다. 하지만 "틀렸습니다"
이후 검색을 통하여 replace(/[old str]/g, '[new str]') 을 이용하여 반복문 없이도 모든 문자열을 치환할 수 있다는 것을 알았다.
** 저 반복문이 왜 틀렸는지 모르겠다. 크롬 console 창에선 정상적으로 작동하는데.... 임의로 만든 반복문이긴 해도 입력 예제는 통과할 줄 알았는데 예제 초반부에 "틀렸습니다" 가 나와서 당황스럽다.