백준 [1316] 그룹단어체커.py
11-15
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
오랜만에 실버문제
풀이
문자열 구현문제는 참 어렵다. 진짜 리스트로 한문자열마다 연달은 두문자열과 비교를 해야하는 것일까? 아니면 다른 알고리즘적 방법이 있을까 고민하다가 전자로 코드를 만들기로 했다.
어제보단 코드다운 코드를 만들긴 했지만 더 이상 도저히 생각하기 힘들어서 답지를 보았다.
코드
n=int(input())
group_word = 0 # 그룹단어의 개수 저장 변수
for _ in range(n):
word = input()
error = 0 # 그룹단어가 아닌 경우
for index in range(len(word)-1):
if (word[index]!= word[index+1]): # 연달은 두 문자가 다를 때
new_word = word [index+1:] #현재글자이후 문자열을 새로운 단어로 생성
if new_word.count(word[index])>0:
error+=1
if error==0:
group_word+=1 #error가 0이면 그룹단어
print(group_word)
연달은 두 문자가 다를 때 문자열을 새로운 단어로 생성해서 확인하는 방법도 있구나..
error #그룹단어가 아닌경우 변수를 만든 부분은 생각못했다.
count 함수 : 문자열 내부에서 특정 문자, 혹은 문자열이 포함 되어있는지 계산해서 반환해주는 함수
잊고있던 count함수..
참고
https://ooyoung.tistory.com/79
백준 1316번 [파이썬 알고리즘] 그룹 단어 체커
[Python] 백준 알고리즘 온라인 저지 1316번 : 그룹 단어 체커 Python3 코드 n = int(input()) group_word = 0 for _ in range(n): word = input() error = 0 for index in range(len(word)-1): # 인덱스 범위 생성 : 0부터 단어개수 -1까
ooyoung.tistory.com