https://www.acmicpc.net/problem/1316
1) 단어가 연속되는지를 확인하고 전에 쓰인 단어가 또 쓰였는지 확인해야 하기 때문에, used 라는 배열을 새로 만든다.
N = int(input())
group_word_cnt = 0
for tc in range(N):
word = input()
used = [0]*200
2) for문을 돌면서 앞 글자랑 비교를 할 거기 때문에, 일단 단어의 첫 글자는 used 배열에 넣어준다
(ASCII코드 사용)
3) 전 글자와 지금 글자가 같거나, 이 글자가 단어에서 처음 등장하면, used 배열에 넣는다
flg = 0
used[ord(word[0])] = 1
for i in range(1, len(word)):
if used[ord(word[i])] == 0 or word[i-1]== word[i]:
used[ord(word[i])] +=1
4) 3번의 경우가 아닌 경우 (나왔던 단어가 또 나왔는데, 연속되지 않음), flg =1으로 하고 for문을 벗어난다.
5) for문을 끝까지 다 돌았는데 flg가 0이면
모든 글자에서 3번 조건이 해당한다는 말이므로
그룹 단어 개수에 1을 추가해준다
else:
flg =1
break
if flg == 0:
group_word_cnt +=1
전체 풀이)
N = int(input())
group_word_cnt = 0
for tc in range(N):
word = input()
used = [0]*200
flg = 0
used[ord(word[0])] = 1
for i in range(1, len(word)):
if used[ord(word[i])] == 0 or word[i-1]== word[i]:
used[ord(word[i])] +=1
else:
flg =1
break
if flg == 0:
group_word_cnt +=1
print(group_word_cnt)
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] 백준 5568 카드 놓기 (0) | 2022.10.24 |
---|---|
[파이썬] 백준 17478 재귀함수가 뭔가요? (0) | 2022.10.24 |
[파이썬] 백준 10944 별 찍기 -19 (0) | 2022.10.19 |
[파이썬] SWEA 12712 파리퇴치3 (for 문으로 풀기) (0) | 2022.10.18 |
[파이썬] SWEA 12712 파리퇴치3 (while 문으로 풀기) (0) | 2022.10.18 |