공부 기록장
백준 12904. A와 B 본문
https://www.acmicpc.net/problem/12904
코드
s = input()
t = input()
while True:
tLen = len(t)
sLen = len(s)
if tLen <= sLen:
break
if t[tLen-1] == 'A':
t = t[:tLen-1]
else:
t = t[:tLen-1]
tmp = list(t)
tmp.reverse()
t = ''.join(tmp)
if t == s:
print(1)
else:
print(0)
그리디와 dfs/bfs 섞어서 복습하는 회차인데
유형을 모르고 푸는 거라 알고 푸는 거랑 좀 다르다 ..
그리디 문제들 풀 때, 해당 문제와 비슷한 문제를 풀었던 기억이 났다.
S에서 T로 바꿀 수 있는 지 여부를 확인하는 문제이지만,
T에서 거꾸로 연산을 수행하면서 S가 되는지 확인하면 문제를 해결할 수 있다.
연산이 어떤 변수의 뒤에 영향을 주고 다른 변수로 변환이 가능한지 묻는 유형의 문제는
거꾸로 연산을 수행한다는 아이디어를 떠올릴 수 있도록
잘 기억을 해두어야겠다.
또한 문자열을 뒤집는 방법으로는
1. 반복문 활용
str1 = 'hello world'
reverse_str1 = ''
for s in str1:
reverse_str1 = s + reverse_str1
print(str1)
print(reverse_str1)
2. 파이썬 리스트 reverse 활용
str1 = 'hello world'
str_list = list(str1)
str_list.reverse()
str2 = ''.join(str_list)
print(str1)
print(str2)
3. [::-1] 문자열 슬라이싱 활용
str1 = "hello World"
str2 = str1[::-1]
print(str1)
print(str2)
와 같은 3가지 방법이 존재한다.
해당 문제의 풀이에서는 2번 방법을 활용했다.
'코딩 테스트 > 백준 문제 풀이' 카테고리의 다른 글
백준 2138. 전구와 스위치 (0) | 2024.01.22 |
---|---|
백준 13975. 파일 합치기 3 (0) | 2024.01.22 |
백준 1461. 도서관 (0) | 2024.01.20 |
[백준 - Python] 1987. 알파벳 (DFS/BFS) (0) | 2024.01.20 |
[백준 - Python] 5014. 스타트링크 (DFS/BFS) (0) | 2024.01.19 |