문제
https://www.acmicpc.net/problem/1316
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.
단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.
코드
"""
Input: N(단어의 개수) / word(N개의 단어)
Output:
Constraints: 1 <= N <= 100 / len(word) <= 100
"""
import sys
input = sys.stdin.readline
# 입력
N = int(input())
count = N
for i in range(N):
word = input()
for j in range(0, len(word)-1):
if word[j] == word[j+1]: # 현 문자열이 바로 뒤의 문자열과 같은 경우
pass
elif word[j] in word[j+1:]: # 현 문자열이 바로 뒤의 문자열과 다른데, 이후 문자열에 해당 문자열이 나타나는 경우
count -= 1
break
print(count)
TIL
문자열을 입력받을 때 줄바꿈 문자(\n)를 제거하는 방법
- replace()
문자열 내의 모든 줄바꿈 문자를 제거할 수 있다. 대상 문자열에서 특정 문자열을 다른 문자열로 대체한다.
word = input().replace('\n', '')
- strip()
문자열의 양쪽 끝에서 지정한 문자를 제거할 수 있다.
word = input().strip('\n')
elif의 정확한 용도
elif는 if가 거짓일 경우에만 실행되므로 불필요한 연산을 방지할 수 있다.