[Softeer] [파이썬] [Level 2] 비밀 메뉴

[9일차] [코딩테스트] [Python]

🎀 본 게시물은 Softeer 연습문제 풀이 게시물입니다. 🎀



https://softeer.ai/practice/info.do?idx=1&eid=623&sw_prbl_sbms_sn=176088

문제 설명

자판기에는 총 K개의 버튼이 있다. 각 버튼마다 1부터 K까지 번호가 붙어 있어서, 조작 과정은 1 이상 K 이하의 정수 여러 개로 나타낼 수 있다.

비밀 메뉴 조작법은 M개의 버튼 조작으로 이루어져 있으며, 이 순서대로 버튼을 누르면 반드시 비밀 메뉴 식권이 발매된다. 이때, 이 조작법 앞뒤로 다른 버튼 조작이 있어도 비밀 메뉴로 인정된다.

사용자가 누른 N개의 버튼 조작이 주어질 때, 사용자가 비밀 메뉴 식권을 받을 수 있는지를 확인하는 프로그램을 작성하여라.

입력형식

첫째 줄에 M, N, K가 공백을 사이에 두고 주어진다.

둘째 줄에 비밀 메뉴 조작법을 나타내는 M개의 정수가 공백을 사이에 두고 주어진다. 각 정수는 1 이상 K 이하이다.

셋째 줄에 사용자의 버튼 조작을 나타내는 N개의 정수가 공백을 사이에 두고 주어진다. 각 정수는 1 이상 K 이하이다.

출력형식

사용자가 비밀 메뉴 식권을 받을 수 있다면 secret을, 그렇지 않다면 normal을 첫째 줄에 출력한다.

입력예제1

3 10 5
1 4 5
3 3 1 2 4 1 4 5 1 4

출력예제1

secret

비밀 메뉴 조작에 해당하는 부분을 표시하면 다음과 같다:

3 3 1 2 4 [1 4 5] 1 4

🚀 나의 풀이 ⭕


import sys 
# sys.stdin=open('input.txt','r')

if __name__=="__main__":
    # M:비밀메뉴조작M개버튼, N:사용자가 누른N개의 버튼, K:자판기 총 버튼 수
    M,N,K=map(int, input().split()) 
    secret=list(map(int, input().split()))
    inputs=list(map(int, input().split()))
    for i in range(0,N-M+1):
        if inputs[i:i+M] == secret:
            print('secret')
            sys.exit(0)
    print('normal') 
    

🚀 다른사람 풀이 ⭕


import sys

if __name__=="__main__":
    M, N, K = map(int, sys.stdin.readline().split())
    secret_menu = ''.join(list(sys.stdin.readline().rstrip().split())) 
    button = ''.join(list(sys.stdin.readline().rstrip().split())) 

    if secret_menu in button:
        print('secret')

    else:
        print('normal')


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기


© 2020. All rights reserved.

따라쟁이