1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때�
www.acmicpc.net
문제해석
문제 해석은 어렵지 않았다.
그룹 단어를 카운트 해야 되는데,
조건 1) 서로 다른 단어 일 경우 카운트 +1
조건 2) 같은단어가 연속으로 나오지만, 뒤에 연속으로 나왓던 단어가 나오지 않을 경우 카운트 +1
문제 해석은 쉬운데 구현이 어려웠다.
두문자를 비교하는 조건을 체크하는건 쉬웠는데, 그 후 카운터를 어떻게 올려야 할지 몰랏다.
여러 오픈소스를 보고 횟수만큼 문자열을 비교하고 검수가 전부 맞는 경우에만 카운터+1을 했다.
문자열 구현은 규칙을 알아내기는 쉽지만 구현하는게 까다롭다. 반드시 알아야 될 문제.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
s = int(input())
count = 0
for i in range(s):
word = input()
for j in range(len(word)-1):
if j != len(word)-2: #문자열 끝까지 비교
if word[j] == word[j+1]: #두문자 같을때
pass
elif word[j] in word[j+1:]: #두문자다를때// 연속으로 나오지 않을때 체크
break
else: #문자열 비교 후 검수가 끝나면 횟수 카운트
count += 1
print(count)
|
위에 코드를 실행 결과
결과는 틀렸다. 이유는 문자열이 1일때 카운트 +1 을 해야 되기 때문이다,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
s = int(input())
count = 0
for i in range(s):
word = input()
if len(word) == 1:
count += 1
else:
for j in range(len(word)-1):
if j != len(word)-2: #문자열 끝까지 비교
if word[j] == word[j+1]: #두문자 같을때
pass
elif word[j] in word[j+1:]: #두문자다를때// 연속으로 나오지 않을때 체크
break
else: #문자열 비교 후 검수가 끝나면 횟수 카운트
count += 1
print(count)
|
실행 결과 합격!
반응형
'BOJ' 카테고리의 다른 글
Baekjoon #2839번 설탕배달 [Python] (0) | 2020.10.06 |
---|---|
baekjoon #1712번 손익분기점 [Python] (0) | 2020.10.06 |
Baekjoon #2941번 크로아티아 알파벳 [Python] (0) | 2020.10.06 |
Baekjoon #5622번 다이얼 Python (0) | 2020.10.05 |
Baekjoon #2908번 상수 Python (0) | 2020.10.05 |