문제 링크입니다: https://programmers.co.kr/learn/courses/11133/lessons/71159
COS Pro 1급 Python 모의고사 - 지그재그 부분 수열
[2, 5, 7, 3, 4, 6, 1, 8, 9] 4 [4, 3, 2, 1, 10, 6, 9, 7, 8] 7
programmers.co.kr
회사에서 COS Pro 1급을 따면 상금을 준다고 해서 재미로 풀어봤습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
INC = 0 | |
DEC = 1 | |
def func_a(arr): | |
length = len(arr) | |
ret = [0 for _ in range(length)] | |
ret[0] = 1 | |
for i in range(1, length): | |
if arr[i] != arr[i-1]: | |
ret[i] = ret[i-1] + 1 | |
else: | |
ret[i] = 2 | |
return ret | |
def func_b(arr): | |
global INC, DEC | |
length = len(arr) | |
ret = [0 for _ in range(length)] | |
ret[0] = -1 | |
for i in range(1, length): | |
if arr[i] > arr[i-1]: | |
ret[i] = INC | |
elif arr[i] < arr[i-1]: | |
ret[i] = DEC | |
return ret | |
def func_c(arr): | |
ret = max(arr) | |
if ret == 2: | |
return 0 | |
return ret | |
def solution(S): | |
check = func_b(S) | |
dp = func_a(check) | |
answer = func_c(dp) | |
return answer | |
# 아래는 테스트케이스 출력을 해보기 위한 코드입니다. | |
S1 = [2, 5, 7, 3, 4, 6, 1, 8, 9] | |
ret1 = solution(S1) | |
# [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. | |
print("solution 함수의 반환 값은", ret1, "입니다.") | |
S2 = [4, 3, 2, 1, 10, 6, 9, 7, 8] | |
ret2 = solution(S2) | |
# [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. | |
print("solution 함수의 반환 값은", ret2, "입니다.") | |
S3 = [1, 2, 3, 4, 5] | |
ret3 = solution(S3) | |
# [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. | |
print("solution 함수의 반환 값은", ret3, "입니다.") |

개발환경: Programmers IDE
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'Python > COS Pro 1급 Python 모의고사' 카테고리의 다른 글
[Programmers] 보드게임 (0) | 2022.05.11 |
---|---|
[Programmers] 종이접기 (0) | 2022.05.11 |
[Programmers] 아르바이트,판매사원 (0) | 2022.05.11 |
[Programmers] Up and down (0) | 2022.05.11 |
[Programmers] 스택으로 큐 구현 (0) | 2022.05.11 |