728x90
XXXX >>> AAAA
XX > BB
위 방법으로 덮어쓴 문자열 출력하는 문제
더보기
문제
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.
출력
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
a=".".join(["AAAA"*(len(x)//4)+"B"*(len(x)%4) if len(x)%2 == 0 else "x" for x in input().split(".")])
print(a if 'x' not in a else -1)
# 위에 코드는 짧아서 풀어서 적어봤습니다.
# 문자열을 .로 쪼개서 각 조각의 길이가 짝수이면 AAAA로 채우고 남은건 BB로 채우고
# 홀수면 x로 채워서
# 하나의 문자열로 묶기
# x가 없으면 AAAA와 BB로 이루어진 문자열 출력
# x가 있으면-1 출력
a=[]
n=input().split(".")
for x in n:
if len(x)%2==0:
a.append("AAAA"*(len(x)//4)+"B"*(len(x)%4))
else:
a.append("x")
result = ".".join(a)
print(result if "x" not in result else -1)
# 이건 이해하기 더 쉬운 방법일지 몰라도 결과는 이게 조금 더 오래 걸렸어요.
# XXXX는 AAAA로 XX는 BB로 변경 후 출력
# X가 남아있으면 -1 출력,,
a = input().replace("XXXX","AAAA").replace("XX","BB")
print(a if 'X' not in a else -1)
더보기
예제 입력 1
XXXXXX
예제 출력 1
AAAABB
예제 입력 2
XX.XX
예제 출력 2
BB.BB
예제 입력 3
XXXX....XXX.....XX
예제 출력 3
-1
예제 입력 4
X
예제 출력 4
-1
예제 입력 5
XX.XXXXXXXXXX..XXXXXXXX...XXXXXX
예제 출력 5
BB.AAAAAAAABB..AAAAAAAA...AAAABB
'IT > Python' 카테고리의 다른 글
[프로그래머스] Lv.1 공원 산책 [Python] (1) | 2023.08.18 |
---|---|
[백준] 1904번 01타일 [Python] - 피보나치 수열 (0) | 2023.08.17 |
[백준] 2669번 직사각형 네 개의 합집합의 면적 구하기 [Python] - 도형 (0) | 2023.08.16 |
[백준] 1094번 막대기 [Python] - 이진법 (0) | 2023.08.16 |