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