<source>
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
1. 반복문으로 해결
n = int(input())
cnt = n
for _ in range(n):
word = input()
for i in range(len(word) -1):
if word[i] != word[i+1]:
if word[i+1] in word[:i]:
cnt -= 1
break
print(cnt)
i번째 단어와 i+1번째 단어가 다른경우에
i+1번째 단어가 처음부터 i번째까지 문자열에 존재한다면 그룹단어 조건 위배
2. sorted() 활용
result = 0
for i in range(int(input())):
word = input()
if list(word) == sorted(word, key=word.find): # str sort
result += 1
print(result)
=> word.find는 찾고자하는 특정 문자의 최초 등장 인덱스를 리턴
happy라는 문자열을 입력했을 때
sorted는 알파벳 순서로 정렬해주지만(reverse=True일 경우 반대로 정렬)
sorted에 key=str.find를 입력했을 때 특정 문자가 최초로 등장하는 순서를 지키면서 정렬함
'Algorithm > BAEKJOON' 카테고리의 다른 글
[Python] 백준 #10809 알파벳 찾기 - 문자열, find() 메서드 (0) | 2021.11.07 |
---|