jae_coding

[1day 1sol] 그룹 단어 체커 본문

알고리즘 문제/one_day_one_sol

[1day 1sol] 그룹 단어 체커

재코딩 2022. 8. 30. 22:52
반응형

문제

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

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

 

구현

1. N 단어의 수를 입력 받는다.

2. 단어를 list로 char단위로 dict를 이용하여 dict내에 없다면 dict에 추가를 시킨다

3. 만약 dict 내에 char가 있다면 이전 단어와 동일한지 확인하는 알고리즘을 통하여 확인하고 만약 동일하지 않으면서 dict안에 존재한다면 그것은 True를 return하여 예외처리해준다.

4. 예외처리가 되지 않은 것을 카운트하여 출력해준다.

 

코드

import sys
input = sys.stdin.readline

n = int(input())
result = 0
for _ in range(n):
    text = list(input().strip())
    # print(text)
    temp = ""
    flag = False
    dictionary = dict()
    for c in text:
        if c not in dictionary:
            dictionary[c] = 1
        else:
            if temp == c:
                continue
            else:
                flag = True
                break
        temp = c

    if flag is False:
        result += 1

print(result)

 

느낀점

구현을 하는데에 list와 dict을 적절히 사용하여 예외 처리를 해주면서 문제를 풀어보았다. 생각보다 단순한 예제를 통해서 사소한 strip이나 dict, list의 성질에 대해서 한번 더 생각해볼 수 있는 문제였다. 

반응형

'알고리즘 문제 > one_day_one_sol' 카테고리의 다른 글

[1day 1sol]피보나치 함수  (0) 2022.08.31
[1day 1sol] 최소힙  (0) 2022.08.31
[1day 1sol] 점프왕 쩰리 (Small)  (0) 2022.08.31
[1day 1sol] 피보나치 수 5  (0) 2022.08.30
[1day 1sol] A+B - 7  (0) 2022.08.30
Comments