Algo/SWEA
[SWEA][Python] 12222. 문자열 나누기
뉴비코
2023. 8. 10. 15:18
※ SW expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
▶ 문제보기
https://swexpertacademy.com/main/code/problem/problemDetail.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
▶ 해결
# 오답 코드 : '인접한 문자열'이 아닌 모든 문자열을 비교했다.
T = int(input())
for t in range(1, T + 1):
word = input()
cnt = 0
wait = ''
word_list = []
# 문자열을 잘라서,같지 않게/ 최대 K 이므로 최대한 많이 자르는 것이 중요! aabbaa
for w in word:
if len(wait) == 0:
if w not in word_list:
word_list.append(w)
else:
wait += w
# 대기 문자열이 있다면
else:
# 합친 문자열이 리스트에 없다면 추가하기
if wait + w not in word_list:
wait += w
word_list.append(wait)
#초기화
wait = ''
else:
wait += w
print(f'#{t} {len(word_list)}')
# 해결 코드 : 인접한 문자열을 비교해주는 방법 / 저장 해놓고 때마다 비교하기
T = int(input())
for t in range(1, T + 1):
word = input()
cnt = 0
now = ''
before=''
# 문자열을 잘라서,같지 않게/ 최대 K 이므로 최대한 많이 자르는 것이 중요!
# +) 인접한 문자열만 같지 않으면 된다.
for i in range(len(word)):
now += word[i]
# 만약 지금 문자열이 이전 문자열과 다르다면
if now != before:
#1을 더해주고
cnt+=1
# 이전 문자열을 현재문자열로 해준다.
before = now
#초기화
now =''
print(f'#{t} {cnt}')
▶ 소감
- 문제를 잘 읽고 풀이해야 한다.
- 문제 접근 방식에서 최고의 효율로 풀이하는 방법을 더 많이 익혀야겠다.