[BOJ][Python][실5][1316] 그룹 단어 체커
문제 링크
첫 번째 풀이
정답코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
from bisect import bisect_left, bisect_right
# sys.stdin = open("input.txt", "r")
n = int(input())
arr = sys.stdin.read().split('\n')
del arr[-1]
ans = 0
for s in arr:
visited = [False] * 26
flag = True
for i in range(len(s)):
index = ord(s[i]) - ord('a')
if not visited[index]:
visited[index] = True
elif i > 0 and s[i - 1] == s[i]:
continue
else:
flag = False
if flag:
ans += 1
print(ans)
두 번째 풀이
정답코드
각 문자가 처음 등장한 위치를 기준으로 정렬을 합니다. ‘cba’를 처음 등장하는 위치를 기준으로 정렬하면 c는 0인덱스에서 등장하기 때문에 제일 처음에 오게됩니다.
같은 문자가 뭉쳐있다면 그대로 출력될 것이고, 아니라면 뭉쳐진 상태로 출력됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
from bisect import bisect_left, bisect_right
# sys.stdin = open("input.txt", "r")
result = 0
for i in range(int(input())):
word = input()
# print(list(word))
# print(sorted(word, key=word.find))
if list(word) == sorted(word, key=word.find):
result += 1
print(result)
'''
['a', 'b', 'a']
['a', 'a', 'b']
['a', 'b', 'a', 'b']
['a', 'a', 'b', 'b']
['a', 'b', 'c', 'a', 'b', 'c']
['a', 'a', 'b', 'b', 'c', 'c']
['a']
['a']
'''
Success Notice: 수고하셨습니다.
Leave a comment