[Baekjoon Online Judge] 백준 1316번 그룹 단어 체커
(Python)
(글쓴날 : 2020.03.23)
* Baekjoon Online Judge, 백준 1316번 문제 Python 언어 풀이입니다.
* 소스 코드의 저작권은 글쓴이에게 있습니다.
백준 1316번 그룹 단어 체커
1) 문제
문제 링크 : https://www.acmicpc.net/problem/1316
2) 풀이 과정
주어진 단어들 중 그룹 단어의 개수를 구하는 문제입니다.
그룹 단어란 해당 단어의 각 알파벳들이 산발적으로 퍼져있지 않고 한번 사용된 알파벳은 쭉 한 번에 나와야만 하는 단어입니다.
(예를 들어 "aabb"는 그룹 단어이지만, "aaba"는 그룹 단어가 아닙니다.)
저의 경우, 각 단어마다 반복문을 돌려 알파벳들을 순차적으로 탐색해 아스키 코드로 변환했고, 변환한 아스키 코드 값을 알파벳이 이전에 나왔었는지 확인하는 리스트의 인덱스로 활용하여 해당 인덱스의 값을 False에서 True로 변경하는 식으로 접근했습니다.
이렇게 되면, 이전에 탐색됐던 알파벳이 다른 알파벳이 나온 후 한 번 더 나왔을 때, 확인 리스트의 값이 True일 테니 그룹 단어가 아닌 것을 판별할 수 있으므로, 이 경우 전체 단어의 개수에서 1씩 차감하여 총 그룹 단어의 개수를 구해 문제를 해결하였습니다.
3) 코드
* Python 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import sys
input = sys.stdin.readline
tot = int(input())
for _ in range(tot):
visit = [False] * 26
word = list(input().rstrip())
pre = word[0]
for i in word:
if visit[ord(i) - 97] == True:
tot -= 1
break
else:
if pre == i:
pre = i
else:
visit[ord(pre) - 97] = True
pre = i
print(tot)
|
'Deprecated' 카테고리의 다른 글
[Algorithm] 유클리드 호제법 (0) | 2020.03.23 |
---|---|
[Baekjoon Online Judge] 백준 2609번 최대공약수와 최소공배수(Python) (0) | 2020.03.23 |
[Baekjoon Online Judge] 백준 2884번 알람 시계(Python) (0) | 2020.03.23 |
[Baekjoon Online Judge] 백준 2941번 크로아티아 알파벳(Python) (0) | 2020.03.22 |
[Baekjoon Online Judge] 백준 5622번 다이얼(Python) (0) | 2020.03.22 |