티스토리 뷰
[python/boj]
1316번. 그룹 단어 체커
입력
1, 단어의 개수 N(N은 100보다 작거나 같은 자연수이다)
2, N개의 단어 (알파벳 소문자, 중복 x, 길이 <= 100)
출력
그룹 단어의 개수
풀이
num = int(input())
rslt = 0
for i in range(num):
str = input()
word = []
rslt += 1
for s in str:
if s in word:
# 문자가 연속되는 경우
# 직전애 삽입된 word의 값이 지금 value의 값과 같은 경우는 연속되기 때문에 그룹 단어다.
if word.index(s) == len(word) - 1:
continue
# 이미 있는 단어인데 연속되지 않을 경우
else:
# 그룹 단어가 아니므로 -1
rslt -= 1
break
else:
word.append(s)
print(rslt)
- 그룹 단어의 개수를 출력하는 rslt 변수를 그룹 단어일 때 +1 해주려고 했으나, 잘 풀리지 않아서 아닐 경우 -1 해주는 것으로 코드를 짰다.
- 테스트케이스 한두개를 충족하는 코드를 짜는건 쉬웠으나, 모든 케이스를 충족하는 코드를 짜는건 쉽지 않았던 것으로 기억한다.
- 알파벳이 똑같은게 여러개 나와도 되지만 무조건 "연속"되어야 한다는 부분을 캐치하는 것이 이 문제의 핵심인 것 같다.
'Algorithm' 카테고리의 다른 글
[Java/백준(boj)] 1453번. 피시방 알바 (0) | 2021.03.04 |
---|---|
[Java/백준(boj)] 2145번. 숫자놀이 (0) | 2021.02.26 |
[python/백준(boj)] 2941번. 크로아티아 알파벳 | python replace() 함수 알아보기 (0) | 2021.02.18 |
[python/백준(boj)] 1157번. 단어 공부 (0) | 2021.02.11 |
[python/백준(boj)] 2675번. 문자열 반복 (0) | 2021.02.11 |
댓글