관리 메뉴

100세까지 코딩

[백준] 1316번 그룹 단어 체커 (파이썬) 본문

코딩테스트/파이썬

[백준] 1316번 그룹 단어 체커 (파이썬)

100세까지 코딩 2024. 1. 11. 16:35
문제

나의 생각
  • 단어를 순회하면서 바로 다음 알파벳을 본다.
  • len(s)-2까지 돌아야 s [j+1]이 index 초과가 되지 않는다.
  • 현재 알파벳과 다르면 현재 알파벳이 그다음에 나오는지 확인한다.
  • 그다음에 또 나오면 그룹 단어가 아니므로 cnt -= 1
나의 풀이
T = int(input())
cnt = T
for i in range(T):
    s = input()
    for j in range(len(s) - 1):
        if s[j] != s[j + 1]:
            if s[j] in s[j + 1:]:
                cnt -= 1
                break
print(cnt)
참고
T = int(input())
cnt = T
for i in range(T):
    s = input()
    for j in range(len(s)-1):
        if s.find(s[j]) > s.find(s[j+1]):
            cnt -= 1
            break
print(cnt)

- find()는 해당 문자가 나오는 첫번째 index번호를 return 해준다.

  만약, 그 다음그다음 문자 index 보다 이전 문자 index가 더 크다면 그다음 문자는 이미 앞에서 나온 적이 있다는 뜻이다.

  ex ) input : aba

        s.find(a) : 0

        s.find(b) : 1

        s.find(a) : 0