-문제:https://www.acmicpc.net/problem/12904
풀이 없이 스스로 푼 문제 골드 level5문제
-정답풀이:
일정한 규칙으로 s를 t로 바꾸는 경우는 문제 그대로 s부터 시작하는 것이 아니라 결과물에서 규칙을 적용해서 s로 풀어나가야한다
t에서 s로 변하는 규칙을 생각해보면 다음과 같다
1. 끝자리가 'A'일 때 t에서 'A'빼기
2. 끝자리가 'B'일 때 t에서 'B'빼고 뒤집기
뒤집는 건 메인 코드에 구현하면 코드가 복잡해질 것 같아 flip()이라는 함수를 정의 후 진행했다
True로 걸어 놓고, if문으로 break 구현하기
일단 길이가 같을 때 두 단어가 같은지 다른지 알 수 있으므로 먼저 길이를 확인하고 같다면 둘이 일치하는지 확인하고 1출력, 둘이 길이는 같은데 문자가 다르다면 0을 출력해주고 break를 하면 while문을 빠져나온다
길이가 같지 않을 때는 끝자리 수에 따라 진행해주면 된다
22번라인데 flip한 걸 새로 t에 넣어줘야하는데 처음에 그냥 flip(t)만 해서 뒤집은게 t에 저장이 안돼 틀렸었다
def flip(a):
b=[]
for i in range(len(a)-1,-1,-1):
b.append(a[i])
return b
s=list(input())
t=list(input())
while True:
if len(t)==len(s):
if t==s:
print(1)
break
elif t!=s:
print(0)
break
if t[-1]=='A':
del t[-1]
elif t[-1]=='B':
del t[-1]
t=flip(t)
'백준 > Greedy' 카테고리의 다른 글
[백준] 9237번: 이장님 초대 (0) | 2022.02.09 |
---|---|
[백준] 1092번: 배(다시 복습) (0) | 2022.02.08 |
[백준] 14659번: 한조서열정리하고옴ㅋㅋㅋ (0) | 2022.02.08 |
[코딩테스트] 백준 1343번: 폴리오미노 (0) | 2022.02.06 |
[코딩테스트] 백준 1041번: 주사위 (0) | 2022.02.06 |