관리 메뉴

진취적 삶

[코드 트리 조별 과제] G or H 2 / 완전탐색 본문

알고리즘

[코드 트리 조별 과제] G or H 2 / 완전탐색

hp0724 2024. 8. 23. 00:42

문제 링크: https://www.codetree.ai/missions/5/problems/G-or-H-2?&utm_source=clipboard&utm_medium=text

 

 

 

코드

MAX_NUM = 100 

n = int(input())
# dp 처럼 우선 만들어두기 
arr = [0] * (MAX_NUM + 1) 

for _ in range(n):
    x,c = input().split()
    x = int(x)

    if c == 'G':
        arr[x] = 1 
    elif c== 'H':
        arr[x] = 2

max_len = 0 
for i in range(MAX_NUM+1):
    for j in range(i+1,MAX_NUM+1):
        # i 와 j 위치에 사람이 있는지 확인 
        if arr[i] == 0 or arr[j] == 0:
            continue
        
        cnt_g = 0
        cnt_h = 0
        
        for k in range(i,j+1):
            if arr[k] == 1:
                cnt_g += 1 
            if arr[k] == 2:
                cnt_h += 1 
        
        if cnt_g == 0 or cnt_h == 0 or cnt_g == cnt_h:
            length = j - i 
            max_len = max(max_len,length)

print(max_len)

 

코드 설명

 

알파벳은 계산이 쉽도록 1 과 2로 변경해준다. 

사람이 없는 경우에는 continue로 무시해준다. 

구간별로 확인하기 위해서 3중 for 문을 사용한다.