728x90
https://www.acmicpc.net/problem/1316
import sys
t = int(sys.stdin.readline())
group_word = 0
for _ in range(t):
string = sys.stdin.readline().rstrip()
error = 0
for index in range(len(string)-1): #1
if string[index] != string[index+1]: #2
new_string = string[index+1:] #3
if new_string.count(string[index]) > 0: #4
error += 1
if error == 0: #5
group_word += 1
print(group_word)
#1 : 다음 문자열과의 비교를 위해 len(word)-1까지만 반복을 실행 ( -1을 하지 않으면 인덱스 에러)
#2 : 현재 인덱스와 바로 다음 인덱스의 문자를 비교하는데 같지 않으면
#3 : 새로운 변수에 다음 인덱스부터 끝까지 복사
#4 : 현재 인덱스의 단어가 새로운 변수에 하나라도 있으면 그룹 단어가 될 수 없어서 error +1
#5 : eroor가 0이면 그룹 단어가 된다.
현재 알파벳과 다음 인덱스의 알파벳을 구분하는 [i] != [i+1]은 정말 자주 쓰이는 방법인것 같다. 파이썬만의 문자열 인덱싱으로 새로운 단어를 만들어 주는 방법도 처음 배웠고 배울점이 많았던 문제라고 생각한다.
비슷한 문제 1978번 소수 찾기(https://hgk5722.tistory.com/127)
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 1259 파이썬(python) : 팰린드롬수 - (문자열 슬라이싱) (0) | 2022.07.04 |
---|---|
[백준] 1181 파이썬(python) : 단어 정렬 - (★) (0) | 2022.07.03 |
[백준] 2941 파이썬(python) : 크로아티아 알파벳 - (replace함수) (0) | 2022.07.03 |
[백준] 5622 파이썬(python) : 다이얼 - (★) (0) | 2022.07.03 |
[백준] 4673 파이썬(python) : 셀프 넘버 - (★) (0) | 2022.07.02 |