반응형
<풀이>
N = int(input())
# 카운트를 처음부터 전체 단어의 개수인 N으로 두어
# 그룹 단어가 아닐 경우 하나씩 빼는 방식으로 접근할 것이다.
cnt = N
for _ in range(N):
word = input()
for idx in range(len(word)-1):
# idx를 기준으로 앞뒤 단어가 다를 경우
if word[idx] != word[idx+1]:
# idx 뒤쪽 인덱스의 문자열에서 word[idx+1] 문자가 포함되어 있는 지 확인
if word[idx+1] in word[:idx]:
# 포함되어 있다면 연속해서 알파벳이 나타난게 아니므로 cnt를 하나 감소 (그룹 단어가 아니다)
cnt -= 1
# 그리고 break로 for문 탈출(다음 단어로 넘어감)
break
print(cnt)
<핵심 정리>
1. 카운트 할 때 0으로 초기화하는 것이 아니라 전체 총량을 넣어놓고 하나씩 차감하는 방법도 있을 수 있다.
2. 앞뒤 인덱스의 값을 비교할 때 (idx-1)와 (idx)를 비교하는 것보다 (idx)와 (idx+1)을 비교하는 것이 낫다.
3. 어떤 문자가 문자열에 포함되어 있는지를 확인하고 싶을땐 .count()함수를 이용하는 것보다 if (문자) in (문자열)을 이용하는 편이 깔끔하다.
반응형
'Base > Algorithm Study' 카테고리의 다른 글
[Python/파이썬] 백준 알고리즘 1929번 - 소수 구하기 (0) | 2021.08.17 |
---|---|
[Python/파이썬] 백준 알고리즘 2869번 - 달팽이는 올라가고 싶다 (0) | 2021.08.16 |
[Python/파이썬] 백준 알고리즘 2908번 - 상수 (0) | 2021.08.15 |
[Python/파이썬] 백준 알고리즘 1152번 - 단어의 개수 (0) | 2021.08.15 |
[Python/파이썬] 백준 알고리즘 1065번 - 한수 (0) | 2021.08.15 |