https://www.acmicpc.net/problem/1316
[문제 이해]
ccazzzzbb, kin, happy → 그룹 단어 O
aabbbccb, abab → 그룹 단어 X
즉 알파벳이 연속되는 경우는 상관없지만 똑같은 알파벳이 연속되지 않게 나타날 경우 그룹 단어가 아니다.
[풀이 생각]
- 알파벳이 리스트에 있지 않다면 해당 알파벳을 리스트에 넣어준다.
- 만약 해당 알파벳이 이전 알파벳과 같지 않고 리스트에 존재한다면 즉 abab와 같은 경우이므로 그룹 단어가 아니다.
[정답]
1. 단어의 개수 N을 입력받는다.
2. 그룹 단어의 개수를 측정할 count를 0으로 초기화한다.
3. 0~N-1동안 for문을 돌면서 word에 단어를 입력받는다.
4. 각 단어마다 알파벳을 담을 리스트 list와 그룹 단어의 유무를 판단할 point를 정의한다.
5. 먼저 word[0] 단어의 첫번째 알파벳을 list에 넣어준다. 만약 len(word)>1이라면 for문을 돌면서 만약 현재 알파벳이 이전 알파벳과 같지 않고 list에 없다면 point=1(그룹 단어가 아니라는 뜻)을 해주고 break한다. 만약 현재 알파벳이 list에 없다면 list에 현재 알파벳을 넣어준다.
6. for문을 다 마친 후 만약 point==0 이라면 즉 그룹 단어라면 count+=1을 해준다.
7. 최종적으로 count를 출력한다.
'알고리즘 공부 > 백준 > Python3' 카테고리의 다른 글
[백준 파이썬] #9012: 괄호 (0) | 2021.01.13 |
---|---|
[백준 파이썬] #10773: 제로 (0) | 2021.01.13 |
[백준 파이썬] #1157: 단어 공부 (0) | 2021.01.09 |
[백준 파이썬] #9295: 주사위 (0) | 2021.01.09 |
[백준 파이썬] #2476: 주사위 게임 (0) | 2021.01.09 |