우당탕탕 개발일지

[해싱] Softeer level 2 비밀메뉴 (Python 파이썬) 본문

알고리즘

[해싱] Softeer level 2 비밀메뉴 (Python 파이썬)

민아당긴아 2024. 3. 22. 12:54

💡문제 링크

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

💡문제 분석 요약

1. 자판기의 특정 버튼을 m개 눌러서 비밀메뉴를 주문할 수 있다.

2. 자판기에는 총 k개의 버튼이 있다.

3. 사용자가 n개의 버튼을 눌렀을 때, 버튼의 배열 사이에 m개의 비밀메뉴 배열이 있으면 비밀메뉴 주문으로 인식하고 "secret"을 출력한다.

4. 비밀메뉴 배열이 2개 이상이라도 "secret"을 한 번만 출력한다.

5. 비밀메뉴 배열이 없으면 "normal"을 출력한다.

 

💡알고리즘 설계

1. m, n, k값을 받는다.

2. 비밀메뉴 배열 s,와 주문정보 배열 p를 받는다. count값을 0으로 초기화한다.

3. p의 인덱스 0부터 (n-m)까지 탐색한다. 앞에서부터 m개씩 원소를 탐색하며, 그 m개의 원소가 비밀메뉴 배열 s와 동일하면 count를 1로 바꾸고 "secret"을 출력한다.

4. 비밀메뉴 배열 s와 동일한 경우가 없으면, 즉 count값이 여전히 0이면 "normal"을 출력한다.

 

💡코드

import sys
m, n, k = map(int, input().split())
s = list(map(int, input().split()))
p = list(map(int, input().split()))
count = 0
for i in range(n-m+1):
    if p[i:i+m] == s:
        count = 1
        print("secret")
        break
if count == 0:
    print("normal")

 

💡 느낀점 or 기억할정보

easy~

level 2라고 해서 다 같은 난이도가 아니었다.

이건 level 2중에서도 완전 쉬운 문제.