[백준/BOJ] 1316번 그룹 단어 체커 (python)

ubin·2023년 7월 21일

백준 문제 풀이

목록 보기
1/9
post-thumbnail

🖇️ 문제

📝 코드 계획

1. 단어의 개수 n 
2. n 개의 줄의 단어
3. 그룹 단어를 구분하는 조건문
4. 그룹 단어의 개수 x

🔍 전체 코드

n = int(input()) #코드 계획 -1 ☑️

gword = 0 

for _ in range(n): #코드 계획 -2 ☑️
    word = input()
    error = 0 
    for i in range(len(word)-1): #코드 계획 -3 ☑️
        if word[i] != word[i+1]: 
            nword = word[i+1:]
            if nword.count(word[i]) > 0: 
                error += 1 
    if error == 0: 
        gword += 1 
print(gword) #코드 계획 -4 ☑️

🖍️ 코드 해설

그룹 단어인지 아닌지를 확인할 단어의 개수를 n으로 받아온다.
그룹 단어의 개수를 세기 위해 gword를 0으로 선언 후 초기화 시킨다. 
단어를 입력 받을 때 error라는 변수로 0으로 선언 후 초기화 시킨다.

n번 만큼 word를 입력받는다. 
매번 입력 받은 단어(문자열)의 길이만큼 for 문을 사용하여 
문자열 속 연달은 두 문자가 같은지 다른지를 확인한다. 
만약 문자열의 문자 word[i]와 그 다음 문자 word[i+1]이 다르다면, 
word[i]를 제외한 뒤의 문자열을 nword로 생성한다. 
nword에 방금 비교했던 word[i]가 포함되어 있는지 count()로 확인하여, 
만약 1 이상이라면 그룹 단어가 아니므로 error(그룹 단어가 아닌 단어)에 +1 해준다. 
한 단어마다 비교가 끝이나면 error값을 확인하여 0이면 그룹 단어인 gword에 +1을 해준다.

n번의 그룹 단어 확인이 끝이나면, gword를 출력해 총 그룹 단어의 개수를 출력한다. 
profile
프론트엔드 개발자가 되고싶은 코린이⌨️

1개의 댓글

comment-user-thumbnail
2023년 7월 21일

글을 잘 이해하기 때문에 코드가 잘 돌아갔습니다. 그룹 단어 판별 알고리즘이 신선했어요. 코드를 해설로 더 잘 이해할 수 있었습니다. 계속 좋은 글 부탁드려요.

답글 달기