상세 컨텐츠

본문 제목

99클럽 코테 스터디 17일차 TIL + 오늘의 학습 키워드 : 스택/큐

본문

728x90
반응형

 

# 사용자로부터 기술 사용 횟수 N을 입력받습니다.
N = int(input())

# 사용될 기술을 문자열로 입력받아 리스트로 변환합니다.
skill = list(str(input()))

# 정상적으로 발동된 기술의 수를 저장할 변수입니다.
num = 0

# 사전 기술을 추적하기 위한 리스트입니다.
used_list = []

# 기술 리스트를 순회합니다.
for i in skill:
    # 'L' 또는 'S' 기술이 사용된 경우
    if (i == 'L' or i == 'S'):
        # 사용된 기술 리스트에 추가합니다.
        used_list.append(i)

    # 'K' 기술이 사용된 경우
    elif (i == 'K'):
        # 'S'가 사용된 적이 있는지 확인합니다.
        if 'S' in used_list:
            # 'S'를 사용한 것으로 간주하고 리스트에서 제거합니다.
            used_list.remove('S')
            # 정상 발동 카운트를 증가시킵니다.
            num = num + 1
        else:
            # 'S'가 없으면 연계 실패로 종료합니다.
            break

    # 'R' 기술이 사용된 경우
    elif (i == 'R'):
        # 'L'이 사용된 적이 있는지 확인합니다.
        if 'L' in used_list:
            # 'L'을 사용한 것으로 간주하고 리스트에서 제거합니다.
            used_list.remove('L')
            # 정상 발동 카운트를 증가시킵니다.
            num = num + 1
        else:
            # 'L'이 없으면 연계 실패로 종료합니다.
            break

    # '1'~'9' 기술이 사용된 경우
    else:
        # 독립적으로 사용 가능하므로 카운트를 증가시킵니다.
        num = num + 1

# 최종적으로 정상 발동된 기술의 수를 출력합니다.
print(num)

주석 설명
각 기술의 종류에 따라 어떻게 처리되는지를 설명하는 주석을 추가했습니다.
used_list는 사전 기술(L, S)을 추적하기 위해 사용되며, 연계 기술(K, R)이 사용될 때 이 리스트에서 해당 기술을 제거합니다.
연계 기술이 성공적으로 발동되면 num을 증가시키고

실패할 경우에는 루프를 종료합니다.
마지막으로 정상 발동된 기술의 수를 출력합니다.

추적에는 리스트를 사용할 것...;;
메모장 만들기 구현할 때도,,, 최근 저장한거에 대한 글 자체를 계속 쌓고쌓고 쌓다가 

ctrl+z (실행취소)하면 저장 기준으로 스택에 쌓인것들 중 pop 한 게 메모장에 표시되겠끔 해야하는건가..;;

맞으면... 댓글 좀 달아주세요..이런 식으로도 활용이 가능한건지... ㅠㅠ

728x90
반응형

관련글 더보기