Python/algorithm
그룹단어체커 [22.09.04]
baecode
2022. 9. 4. 16:05
반응형
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
나의 풀이
x = int(input())
group_word = 0
for _ in range(x):
word = input() #전달받는 단어
error = 0
for idx in range(len(word)-1):
if word[idx] != word[idx+1]: # ex) happy 에서 h와 a가 같지않을경우
new_word = word[idx+1:] # new_word에 appy 라는 새로운 단어를 생성
if word[idx] in new_word: # h가 appy에 포함 되었을경우
error += 1 # 에러 발생 ( 그룹단어가 아님 )
if error == 0: # 그룹단어일 경우 0
group_word += 1
print(group_word)
###############
## 개선 후 코드 ##
x = int(input())
for _ in range(x):
word = input()
for idx in range(len(word)-1):
if word[idx] != word[idx+1] and word[idx] in word[idx+1:]:
x -= 1
print(x)
루키의 풀이
n = int(input())
cnt = n
for i in range(n):
s = input() # 전달받는 단어
for j in range(len(s) - 1): # 알파벳 1개씩 돌면서 검사
if s.find(s[j]) > s.find(s[j+1]):
cnt -= 1
break
print(cnt)
반응형