IT

[알고리즘/백준] 2684번 동전 게임 Python 파이썬

배애앰이 좋아 2023. 2. 21. 19:15
반응형

 

이번 문제에는 단순한 문제인데 앞에서 순열 조합 문제를 풀어서 그런지 어렵게 생각하다가 시간이 많이 소요된 문제이다. 하다가 뭔가 아닌 것 같아서 다른 분의 코드를 참고했고 문제를 깨달을 수 있었다.

 

 

각 테케가 몇 번 나왔는지 출력해주는 문제로 입력한 문자에서 처음부터 끝까지 세 문자씩 묶어서 검사해주면 되는 문제였다. 어쩌다가 사고방식이 순열 조합으로 흘러가서 뻘짓을 하고 있었는지...;; 이래서 문제를 끝까지 잘 읽어봐야하는 것 같다.

 

다음과 같은 코드를 통해 통과하였다.

 

import sys
input = sys.stdin.readline

P = int(input())

for i in range(P):
    check = {"TTT": 0, "TTH": 0, "THT": 0, "THH": 0, "HTT": 0, "HTH": 0, "HHT": 0, "HHH": 0}
    coin_list = input()
    for j in range(38):
        check[coin_list[j:j+3]] += 1
    for k, v in check.items():
        print(v, end=' ')
    print()

 

검사를 40번 해주는게 아닌 3개씩 묶어서 검사하니 마지막 2글자를 뺀 38번만 돌아준다는 점만 잘 고려하면 될 거 같다. 이때까지 딕셔너리 잘 안 사용했는데 이번에 사용해보니 편한 것 같다. 앞으로도 많이 사용할 것 같다. 나머지는 크게 언급할 부분이 없는 것 같다.

반응형