문제
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.
입력
- 첫째 줄: 단어의 개수 N
- 둘째 줄부터 N개의 줄 : 단어( 알파벳 소문자, 중복 X, 최대 길이 100)
출력
그룹 단어의 개수
★Keypoint : 리스트 인덱싱, in문
파이썬의 in문을 사용하면 짧게 가능한 문제!
<최종 CODE>
n = int(input())
count = n # 모두가 다 그룹 단어일 때 최대 그룹단어 개수
for _ in range(n):
word = input()
for i in range(len(word) - 1):
if word[i] != word[i + 1]: # 현재 문자와 다음 문자가 다를 때
if word[i] in word[i + 1:]: # 현재 문자가 그 다음 문자열에도 존재하면
count -= 1
break
print(count)
<CODE 설명>
한 단어가 입력될 때마다 그룹단어 여부 확인
in문 'hello' in s 하면 s 문자열 안에 hello가 있는지의 여부에 따라 True, False 를 반환한다
+ 관련 함수
- string.count('hello') : string 안에 'hello'가 몇개 있는지 개수 반환
- string.find('hello') : string의 몇번째 인덱스에 'hello'가 시작되는지 위치 반환
파이썬 내장함수를 사용하는 연습을 많이 해야 불필요한 for문과 변수 사용을 줄일 수 있다.
'Algorithms' 카테고리의 다른 글
[Python] 백준 15686 치킨 배달 (1) | 2023.11.25 |
---|---|
[Python] 백준 9012 괄호 (1) | 2023.11.23 |
[JAVA] 백준 2018 수들의 합 (1) | 2023.11.19 |
[Python] 백준 3190 뱀 (0) | 2023.11.18 |
[JAVA] 백준 11659 구간 합 구하기4 & 런타임 에러 해결 (0) | 2023.11.18 |