관리 메뉴

솜씨좋은장씨

[BaekJoon] 26004번 : HI-ARC (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 26004번 : HI-ARC (Python)

솜씨좋은장씨 2022. 12. 10. 12:38
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 HI-ARC 입니다.

 

26004번: HI-ARC

첫째 줄에 문자열 $S$의 길이 정수 $N$이 주어진다. ($1 \leq N \leq 100\,000$) 둘째 줄에 문자열 $S$가 주어진다. 문자열 $S$의 모든 문자는 영어 대문자이다.

www.acmicpc.net

👨🏻‍💻 문제 풀이

입력받은 문자열에 포함된 알파벳으로 HI-ARC 단어를 최대 몇 개 까지 만들 수 있는지 구하는 문제입니다.

먼저 입력 받은 문자열에 포함된 각 알파벳의 개수를 collections 의 Counter 를 활용하여 구해줍니다.

from collections import Counter

cnt = Counter(S)

그렇게 구한 알파벳 개수 목록에서 H, I, A, R, C 의 개수를 찾아 리스트에 담아 줍니다.

만약 H, I, A, R, C 중 하나라도 없는 경우에는 개수 찾는 것을 중단 합니다.

cnt_num_list = []

word_list = ["H", "I", "A", "R", "C"]

cnt = Counter(S)

for word in word_list:
    if word not in cnt:
        break

    cnt_num_list.append(cnt[word])

이렇게 찾은 값이 5개일 경우 값중 가장 작은 값을 정답으로 합니다.

if len(cnt_num_list) == 5:
    answer = min(cnt_num_list)

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

from collections import Counter

def hi_arc(S):
    answer = 0
    
    cnt_num_list = []
    
    word_list = ["H", "I", "A", "R", "C"]
    
    cnt = Counter(S)
    
    for word in word_list:
        if word not in cnt:
            break
            
        cnt_num_list.append(cnt[word])
        
    if len(cnt_num_list) == 5:
        answer = min(cnt_num_list)
        
    return answer
    

if __name__ == "__main__":
    N = int(input())
    S = input()
    
    print(hi_arc(S=S))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments