문제
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.
단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
import sys
N=int(sys.stdin.readline())
count_checker=0
for _ in range(N):
is_checker=True
word=list(sys.stdin.readline().rstrip())
for x in range(len(word)-1):
if(word[x]==word[x+1]):
continue
else:
if(word[x] in word[x+1:]):
is_checker=False
break
if(is_checker==True):
count_checker+=1
print(count_checker)
※ 문자열
● 입력받은 단어를 리스트로 만들어 준 후, 인덱스 0부터 단어의 길이-2 까지 for문을 돈다(현재 단어와 다음 단어를 비교할건데 마지막 인덱스가 단어의 길이-1 이므로 list index out of range를 방지하려면 단어의 길이-2까지 돌아야 함!)
● 현재 문자와 다음 문자가 같으면 아직까지는 그룹 체커일 확률이 있으므로 그냥 넘어간다.
● 만약 다르면 현재 문자 그 이후의 문자들로 이루어진 단어에서 현재 문자가 하나라도 나오면 그룹 체커가 아님이 보장되므로 is_checker를 False로 바꾸고 루프를 탈출해준다.
● 마지막까지 is_checker 가 True를 유지하고 있다면 count_checker의 값을 1 증가시켜준다.
● 모든 단어의 확인이 끝나면 count_checker를 출력해주면 된다~~
♣ 참고: rstrip
https://codechacha.com/ko/python-string-strip/
Python - String strip(), rstrip(), lstrip() 사용 방법 및 예제
Python에서 strip() 함수를 이용하면 문자열의 쓸모 없는 부분을 자를 수 있습니다. Python은 lstrip(), rstrip(), strip()을 제공합니다. Java 등의 다른 언어들도 strip()을 제공하며, 기능은 모두 비슷합니다.
codechacha.com
'백준(baekjoon) > 실버' 카테고리의 다른 글
백준(baekjoon) 9020번: 골드바흐의 추측(실버 2, 파이썬 PYTHON) - 기본 수학2 (0) | 2022.09.01 |
---|---|
백준(baekjoon) 1929번: 소수 구하기(실버 3, 파이썬 PYTHON) - 기본 수학2 (0) | 2022.09.01 |
백준(baekjoon) 1978번: 소수 찾기(실버 5, 파이썬 PYTHON) - 기본 수학2 (0) | 2022.09.01 |
백준(baekjoon) 2839번: 설탕 배달(실버 4, 파이썬 PYTHON) - 기본 수학1 (0) | 2022.08.31 |
백준(baekjoon) 4673번: 셀프 넘버(실버 5, 파이썬 PYTHON) - 1차원 배열 (0) | 2022.08.30 |