백준 알고리즘 문제 풀이 [Python]

[백준/Python] 1316번 그룹 단어 체커 (문자열)

wlalsu_u 2023. 2. 23. 18:04

1316번 : 그룹 단어 체커 문제

 

 

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다.

 

예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만,

aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.

 

단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.

 

 

 

 

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

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

 

 


 

풀이 코드

 

n = int(input())
count = 0

for i in range(n):
    word = input()
    answer = True

    for j in range(len(word)-1):
        if word[j] != word[j+1] and word[j] in word[j+1:]:
            answer = False
            break

    if answer == True:
        count += 1


print(count)

 

 

 

n = int(input())

 

 

- 첫째 줄에서 단어의 개수 n 을 입력받음

 

- input() 은 한 줄의 문자열만 입력받을 수 있음

 

- 입력받은 문자열을 정수로 처리하기 위해 int() 함수를 사용

 

 

 

count = 0

 

 

- 그룹 단어의 개수를 저장할 count 변수

 

- 0으로 초기화

 

 

 

for i in range(n):

 

 

- range() 를 사용하여, 입력받은 n 번 만큼 for 문을 반복

 

 

 

word = input()

 

 

- 입력되는 단어를 word 변수에 저장

 

- n개의 줄에 한 줄씩 단어가 입력되므로, for 문 안에 input() 을 작성

 

 

 

answer = True

 

 

- 각 문자가 연속해서 나타나는 그룹단어인 경우, answer = True 로 설정

 

- 그룹단어가 아닌 경우, 이후 answer = False 로 변경

 

 

 

for j in range(len(word) -1):

 

 

- len() 함수는 리스트에 들어 있는 개수를 반환

 

- len(word) 로, word 리스트에 들어 있는 문자열의 개수를 출력

 

- 인덱스 0번부터 순회하므로, len(word) -1 해줌

 

 

 

if word[j] != word[j+1] and word[j] in word[j+1]:

 

 

- 입력받은 단어의 인접한 두 문자가 서로 다른 경우

 

 

 

answer = False

 

 

- 앞선 if 문에 해당하는 경우, 그룹 문자가 아니므로 answer = False 로 설정

 

 

 

break

 

 

- 그룹문자가 아닌 경우 (answer = False) , for 문을 벗어남

 

 

 

if answer == True:

 

 

- 입력받은 문자를 모두 순차탐색한 후에도 answer = True 인 경우

 

- 그룹문자에 해당됨

 

 

 

count += 1

 

 

- 앞선 if 문에 해당하는 경우, 그룹문자이므로 count 값을 1 증가

 

 

 

print(count)

 

 

- n번 반복한 후, 최종 그룹 문자의 개수인 count 를 출력 

 

 

 

 

 

 

 

 

나동빈 '이것이 코딩 테스트다 with 파이썬' 책을 참고하여 작성하였습니다.

https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC