나의 코드:
N = int(input())
group = 0
for i in range(N):
Num = input()
cnt = 0
for j in range(len(Num)-1):
if Num[j] != Num[j+1]:
Num_list = Num[j+1:]
if Num_list.count(Num[j]) > 0:
cnt += 1
if cnt == 0:
group += 1
print(group)
이번 문제는 생각보다 어려워서 많이 돌아간것 같았습니다. 이번 문제는 문자열의 첫번째 인덱스와 두번째의 인덱스가 다르고 두번째 인덱스 이후부터, 첫번째 인덱스의 문자만 없으면 해당 문자는 그룹단어에 속하지 않다 라는 생각을 가지고 문제를 풀었다. 이렇게 설계하고 막상 코드를 작성하려고 보니 생각보다 너무 어려웠다. 그래서 문자열 슬라이싱을 이용하여 풀었다.
1. 첫번째 인덱스와 두번째의 인덱가 다르면 , 두번째 인덱스 부터 모든 문자열을 Num_list에 저장한다.
2. Num_list에 있는 문자중 현재 인덱스의 숫자를 세어 하나이상 있는지 확인한다.
3. 있다면 카운터를 1올리고 아니면 넘어간다.
4. 이와 같은 과정을 문자열의 길이 -1 만큼 해준다. ( -1을 하지않으면, 문자열 비교가 넘어가버림.)
5. 이와 같이 카운터가 0일시 그룹단어이다.
백준[2798번]:: 블랙잭(Python,파이썬) (0) | 2020.10.04 |
---|---|
백준[10872번]:: 팩토리얼(Python,파이썬) (1) | 2020.09.24 |
백준[2941번]:: 크로아티아(Python,파이썬) (2) | 2020.09.22 |
백준[2908번]:: 상수 (Python, 파이썬) (0) | 2020.09.20 |
백준[1152번]:: 단어의 개수(Python, 파이썬) (0) | 2020.09.16 |
댓글 영역