백준 baekjoon

백준 [1316] 그룹단어체커.py

니블 2022. 11. 15. 23:14

11-15

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

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

오랜만에 실버문제 

풀이 

문자열 구현문제는 참 어렵다. 진짜 리스트로 한문자열마다 연달은 두문자열과 비교를 해야하는 것일까? 아니면 다른 알고리즘적 방법이 있을까 고민하다가 전자로 코드를 만들기로 했다. 

어제보단 코드다운 코드를 만들긴 했지만 더 이상 도저히 생각하기 힘들어서 답지를 보았다. 

코드

n=int(input())
group_word = 0 # 그룹단어의 개수 저장 변수 
for _ in range(n): 
    word = input() 
    error = 0 # 그룹단어가 아닌 경우 
    for index in range(len(word)-1): 
        if (word[index]!= word[index+1]): # 연달은 두 문자가 다를 때 
            new_word = word [index+1:] #현재글자이후  문자열을 새로운 단어로 생성 
            if new_word.count(word[index])>0:
                error+=1 
    if error==0:
        group_word+=1 #error가 0이면 그룹단어 
print(group_word)

연달은 두 문자가 다를 때 문자열을 새로운 단어로 생성해서 확인하는 방법도 있구나.. 

error #그룹단어가 아닌경우 변수를 만든 부분은 생각못했다. 

count 함수 : 문자열 내부에서 특정 문자, 혹은 문자열이 포함 되어있는지 계산해서 반환해주는 함수

잊고있던 count함수.. 

참고

https://ooyoung.tistory.com/79

 

백준 1316번 [파이썬 알고리즘] 그룹 단어 체커

[Python] 백준 알고리즘 온라인 저지 1316번 : 그룹 단어 체커 Python3 코드 n = int(input()) group_word = 0 for _ in range(n): word = input() error = 0 for index in range(len(word)-1): # 인덱스 범위 생성 : 0부터 단어개수 -1까

ooyoung.tistory.com