[Boj문제풀이]

[Boj/백준] 1316 Python

ki7348 2021. 8. 18. 09:15

문제출처: 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