반응형
문제 출처
https://www.acmicpc.net/problem/1343
문제
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.
출력
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
예제입력
정답 코드
const path = process.platform === "linux" ? "/dev/stdin" : "input.txt";
const input = require("fs").readFileSync(path).toString().trim().split('\n');
const n = input[0];
function solution(n){
n = n.replace(/XXXX/g, 'AAAA');
n = n.replace(/XX/g, 'BB');
if(n.split('').includes('X')){
return -1
}else{
return n
}
}
const answer = solution(n);
console.log(answer);
의사코드 작성
const path = process.platform === "linux" ? "/dev/stdin" : "input.txt";
const input = require("fs").readFileSync(path).toString().trim().split('\n');
const n = input[0];
function solution(n){
n = n.replace(/XXXX/g, 'AAAA'); //X가 연달아 4개 있는 string을 'AAAA'로 바꿔준다. 참고1
n = n.replace(/XX/g, 'BB'); //X가 연달아 2개 있는 string을 'BB'로 바꿔준다.
if(n.split('').includes('X')){ //n을 배열로 만들어준후, 'X' 요소가 아직 있다면?
return -1 //-1 리턴
}else{
return n //모든 X를 A와 B로 바꾼것이니, n 리턴
}
}
const answer = solution(n)
console.log(answer);
참고
참고1)
반응형
'알고리즘 문제 풀기' 카테고리의 다른 글
[백준] 2231: 분해합 Javascript, Nodejs(완전탐색) (0) | 2023.07.09 |
---|---|
[백준]14916 거스름돈 Javascript, Nodejs (Greedy) (0) | 2023.07.09 |
[백준] 11399번 ATM - javascript (0) | 2023.06.29 |
[백준] 1260번 DFS와BFS - javascript (0) | 2023.06.27 |
[백준] 2839번 설탕 배달 - javascript (0) | 2023.06.27 |