[BOJ1343/Swift] 백준 폴리오미노 / replace, 문자열 대체

Zoe·2023년 4월 4일
0

🔩 Algorithm

목록 보기
8/10
post-thumbnail

문제

폴리오미노

문제

민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.

출력

첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.

예제 입력/출력

//1
XXXXXX -> AAAABB
//2
XX.XX -> BB.BB
//3
XXXX....XXX.....XX -> -1
//4
X -> -1
//5
XX.XXXXXXXXXX..XXXXXXXX...XXXXXX -> BB.AAAAAAAABB..AAAAAAAA...AAAABB

풀이

사용 문법

description.replacingOccurrences(of: "바꿀 String", with: "대체할 String")

"XXXX"를 모두 "AAAA"로 대체하고 "XX""BB"로 대체한다.
대체 후에 X가 남아있다면 -1 출력, X가 없다면 대체 완료한 String을 출력

정답

import Foundation

var input = readLine()!

input = input.description.replacingOccurrences(of: "XXXX", with: "AAAA")
input = input.description.replacingOccurrences(of: "XX", with: "BB")


if input.contains("X"){
    print ("-1")
} else {
    print(input)
}
//print(input.contains("X") ? "-1" : input)

0개의 댓글