코딩테스트

[BOJ] #1316: 그룹 단어 체커 (Python)

dawncoding 2025. 2. 10. 17:32

문제

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가 거짓일 경우에만 실행되므로 불필요한 연산을 방지할 수 있다.