반응형
문제
문자열 S, T가 주어질 때 2가지 규칙에 의해 S를 T로 변경할 수 있는지 출력하는 문제이다.
풀이
- 기본 아이디어
- S의 길이 <= T의 길이 이므로
- S가 T가 되었는지 확인하는 것보다 T가 S가 되는지 확인하면 더 쉽게 풀림
- 규칙 변경
- 문자열 뒤에 A를 추가한다 -> 마지막 문자열이 A라면 A를 제거한다.
- 문자열을 뒤집고 뒤에 B를 추가한다. -> 마지막 문자열이 B라면 B를 제거하고, 문자열을 뒤집는다.
- 파이썬 구현
- 문자열을 뒤집고, 마지막 문자열을 제거하는 동작을 해야하므로 리스트 이용
통과된 풀이
s = list(input()) # 문자열 S
t = list(input()) # 문자열 t
success = False
while len(s) != len(t):
if t[-1] == 'A': # 규칙 1
t.pop()
elif t[-1] == 'B': # 규칙 2
t.pop()
t = t[::-1]
if s == t: # 성공 여부 체크
success = True
if success:
print(1)
else:
print(0)
반응형
'Algorithm > BaekJoon' 카테고리의 다른 글
[백준 5557] 1학년 python (0) | 2022.03.01 |
---|---|
[백준 9020] 골드바흐의 추측 python (0) | 2022.02.05 |
[백준 4948] 베르트랑 공준 python (0) | 2022.02.04 |
[백준 1929] 소수 구하기 (+에라토스테네스의 체) python (0) | 2022.02.04 |
[백준 11653] 소인수 분해 python (0) | 2022.02.04 |