문제출처: https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
1. 문제 접근 방식
문자열을 순환한다 => 연속하지 않는 문자열 발견 => 해당문자(x[j])를 시작으로하는 새로운 문자열을 생성(newx)
=> 새롭게 생성된 문자열안에 해당 문자(x[j])가 존재하면 no 카운트를 증가시키면서 그룹단어에서 제외시킨다.
2. 내가 푼 코드
import sys
case = int(sys.stdin.readline())
count = 0
for i in range(case):
x = sys.stdin.readline().strip()
no=0
for j in range(len(x)-1):
if x[j] != x[j+1]:
newx=x[j+1:]
if newx.find(x[j]) > 0:
no+=1
if no == 0:
count+=1
print(count)
3. 결과 및 느낀점
find 메소드는 문자열에서 특정 문자를 찾아 존재하면 인덱스를 리턴하고
존재하지 않으면 -1을 리턴한다.
rfind 메소드는 뒤에서부터 특정 단어를 찾아 인덱스를 리턴한다.
문자열 내에서 특정 문자를 찾는다면 find 메소드를 적극 활용하자.
'[Boj문제풀이]' 카테고리의 다른 글
[Boj/백준] 4889 Python (0) | 2021.08.21 |
---|---|
[Boj/백준] 14425 Python (0) | 2021.08.20 |
[Boj/백준] 1543 Python (0) | 2021.08.19 |
[Boj/백준] 2941 Python (0) | 2021.08.18 |
[Boj/백준] 7785 Python (0) | 2021.08.18 |