반응형
<<소스코드>>
n = int(input()) #처음 주어지는 단어의 갯수
group = 0
for i in range(n):
count = 0
numb = input()
for j in range(len(numb)-1): #여기를 -1을 해줘서 out of range 가 계속 났음. j+1 때문에 -1을 더 빼줘야한다.
if numb[j] != numb[j+1]: #옆의 문자가 연속된 동일한 문자가 아니라면?
if numb[j] in numb[j+1:]: #j+1부터 끝까지 중, numb[j]값이 있다면,
count += 1 #그렇다면 그룹문자가 아니니까 카운트 해주기
if count == 0: # 카운트가 없어야 = 0이여야 그룹문자 이므로,
group += 1 # for문이 끝날때마다 그룹을 +1 해준다. 그룹의 갯수가 그룹문자의 갯수이다.
print(group)
<<결과값>>
4
aba
abab
abcabc
a
1
코드설명
그룹문자가 아니려면,
1) 연속되어도 뒤에 또 나와야함 -> 연속된 것의 맨 마지막 차례가 올때 2)를 수행한다. ex) aaabbca (2번인덱스 a)
2) 연달아 나오지는 않지만, 뒤에 또 나옴
for문을 돌면서 그룹문자가 아닌것들을 카운트 해줬다. 카운트가 없는 것들이 그룹문자가 된다.
연속된 문자가 없을때, 뒤에 문자 안에 내가 찾는 문자가 있는지 봐주고, 카운트를 올려주었다.
오류발생
len(len(numb)-1): #여기를 -1을 해줘서 out of range 가 계속 났음. 인덱스가 범위를 넘었다ㅠㅠ
i+1도 범위에 있어야하는데 그걸 생각 못해주었다... (๑°ㅁ°๑)‼✧
728x90
반응형
'알고리즘' 카테고리의 다른 글
[파이썬] 단계별 백준 문제 풀기 - 1011 기본수학 (Fly me to the Alpha Centauri) (0) | 2021.03.12 |
---|---|
[파이썬] 단계별 백준 문제 풀기 - 2839 기본수학 (설탕 배달) (0) | 2021.03.12 |
[파이썬] 단계별 백준 문제 풀기 - 11053 동적계획법 (가장 긴 증가하는 부분 수열) (0) | 2021.03.12 |
[파이썬] 단계별 백준 문제 풀기 - 2606 DFS와 BFS (바이러스) (0) | 2021.03.12 |
[파이썬] 단계별 백준 문제 풀기 - 1021 큐 (회전하는 큐) (0) | 2021.03.12 |