Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- C언어
- Lv. 3
- 동적계획법
- SQL 고득점 KIT
- group by
- join
- bfs
- Dynamic Programming
- 파이썬
- 프로그래머스
- 소프티어
- Lv. 0
- Lv. 1
- javascript
- 오블완
- Python
- SQL
- level 3
- LEVEL 2
- 자바스크립트
- Java
- 깊이 우선 탐색
- dfs
- DP
- 티스토리챌린지
- softeer
- Lv. 2
- 너비 우선 탐색
- select
- programmers
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
Softeer level2 [21년 재직자 대회 예선] 비밀 메뉴 Python 본문
문제 링크 : https://softeer.ai/practice/info.do?idx=1&eid=623
잘못된 코드
import sys
input = sys.stdin.readline
M, N, K = map(int, input().split())
secret = list(map(int, input().split()))
list_btn = list(map(int, input().split()))
index = 0
if M > N:
print("normal")
else:
for i in range(N):
print(list_btn[i] == secret[index])
if list_btn[i] == secret[index]:
index += 1
if index == M:
print("secret")
break
else:
index = 0
if list_btn[i] == secret[index]:
index += 1
if index == M:
print("secret")
break
else:
print("normal")
입력값
4 5 3
3 3 1 3
3 3 3 1 3
결과값
True
True
False
False
True
normal
잘못된 점
위와 같은 코드로 할 경우 틀린 시점부터 0번 인덱스로 돌아가기 때문에
3 3 [3 1 3]
이런 식으로 검사 하게 된다.
정답코드
단순하게 Brute force 알고리즘을 적용해본다.
import sys
input = sys.stdin.readline
M, N, K = map(int, input().split())
secret = list(map(int, input().split()))
list_btn = list(map(int, input().split()))
if M <= N:
for i in range(N):
if i + M > N:
print("normal")
break
length = 0
for j in range(M):
if secret[j] == list_btn[i+j]:
length += 1
else:
break
if length == M:
print("secret")
break
else:
print("normal")
코드도 훨씬 간결해지고 쉽게 통과하는 모습
'알고리즘' 카테고리의 다른 글
Softeer level3 [21년 재직자 대회 예선] 좌석 관리 Python (0) | 2023.08.26 |
---|---|
Softeer level3 [21년 재직자 대회 본선] 코딩 테스트 세트 Python (0) | 2023.08.23 |
Softeer level3 [HSAT 3회 정기 코딩 인증평가 기출] 플레이페어 암호 Python (2) | 2023.08.21 |
Softeer level3 스마트 물류 Python (0) | 2023.08.07 |
Softeer level3 택배 마스터 광우 Python (0) | 2023.08.04 |