본문 바로가기
IT/알고리즘

1일 N알고리즘 - #13

by Sungjun_ 2020. 5. 16.

문제

https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때�

www.acmicpc.net

문제는 위 사이트를 참고해주세요.

 


풀이

count = 0  # 그룹 단어를 카운트 할 변수 초기화
x = int(input())  # 입력할 단어의 개수를 저장
for i in range(x):  # 입력할 단어의 개수 만큼 for문 돌림
    word = str(input())  # 단어를 str형으로 입력 받음
    if list(word) == sorted(word, key=word.find):  
        count += 1
    # 입력받은 단어를 리스트형으로 만들어준다. ex) word = abab -> list(word) -> ['a', 'b', 'a', 'b']
    # 입력 받은 단어를 정렬하는데 먼저 찾는 단어를 기준으로 정렬한다. ex) ['a', 'a', 'b', 'b']
    # 입력 받은 단어가 그룹 단어라면 정렬된 리스트와 같을 것이고, 아니면 다를 것이다.
    # 그래서 같을 때만 count를 증가시켜준다.
print(count)

 

주석을 참고해주세요.

 


결과

결과 화면

 

'IT > 알고리즘' 카테고리의 다른 글

1일 N알고리즘 - #15  (0) 2020.05.18
1일 N알고리즘 - #14  (0) 2020.05.17
1일 N알고리즘 - #12  (0) 2020.05.16
1일 1알고리즘 - #11  (0) 2020.05.16
1일 1알고리즘 - #10  (0) 2020.05.16

댓글