😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[1316번] 그룹 단어 체커 / python3 (feat. 다시 도전)

또방91 2021. 11. 9. 16:15
728x90

문제 링크: https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

몇 주만에 성장한 나의 모습을 느낄 수 있었던 문제!


❌ 10월 마지막 주 1~2차시도 실패

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 1.연속O 
# 1-1)다음자리도 연속인지 물어보고
# 1-2)어느순간 뒤에 다른거 나오면, 그 다른숫자 다음으로 자기가 포함되어 있는지
# 포함되어 있으면 그룹단어가 아님 
 
# 2. 연속x 
# 이후로 자기가 포함되어 있는지
# A. 그룹단어를 출력하시오
 
#1차시도 실패-----------------------
 
n=int(input())
 
for _ in range(n):
    t=list(input())
    for i in range(len(t)):
        if t[i]!=t[i+1]:
            if t[i] in t[i+1:]:
               print("그룹단어 아님")
            
        else:
                print("그룹단어임")
                pass
 
 
#2차시도 실패--------------
 
n=int(input())
for _ in range(n):
    t=list(input())
 
    for i in range(0,len(t)):
        if t[i]==t[i+1]:
            pass
        else:
            if t[i] in t[i+1:]:
                n-=1
        break
    print(n)
cs

❓ 정답은 ??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 그룹단어는 연속된 문자 뒤에 또 나오면 안된다
# 그룹단어 갯수 출력
 
import sys
 
n=int(sys.stdin.readline())
 
cnt=0
for _ in range(n):
    t=list(input()) #sys로 받으면 '\n'까지 리스트에 들어감
    t_check=[ ] #거쳐간 문자열 리스트
    
    for i in range(1,len(t)):
        #<< 조건1. 연속 vs 비연속 >>
        if t[i]==t[i-1]:    #연속
            continue
    
        else:    #비연속
            t_check.append(t[i-1]) #거쳐간 문자열 리스트에 넣기
            
            #<<조건2. new 단어 vs old 단어>>
            if t[i] not in t_check: #이전에 안나온 new단어
                continue    
           
            else:   #이전에 나온 old단어 
                cnt+=1
                break #중단
 
print(n-cnt) #총 개수에서 old단어개수 빼기
cs

💯 풀이 과정

if 조건 식이 복잡해서 틀렸엇던 것 같아 주석을 달아가면서 차근차근 써보니 딩동댕!🔔


😎오늘의 한줄평: 현재 나는 못 풀었어도 미래의 내가 잘 풀겠지

(DFS, BFS도 그렇....겠지?? 🥺)

728x90