홍우진의 개발 일기장
[COS Pro 2급] 공항 방문객 / 파이썬 본문
728x90
반응형
문제 설명
XX 공항에서 N 일 동안 매일 공항 방문객 수를 조사했습니다. 이때, 가장 많은 방문객 수와 두 번째로 많은 방문객 수의 차이를 구하려고 합니다. 단, 방문객의 수가 같은 날은 없다고 가정합니다. 이를 위해 다음과 같이 4단계로 간단히 프로그램 구조를 작성했습니다.
1. 입력으로 주어진 배열에서 가장 많은 방문객 수를 찾습니다.
2. 1번 단계에서 찾은 값을 제외하고, 나머지 값들로 이루어진 새로운 배열을 만듭니다.
3. 2번 단계에서 만든 새로운 배열에서 가장 큰 방문객의 수를 찾습니다.
4. 1번 단계와 3번 단계에서 구한 값의 차이를 구합니다.
N 일 동안의 방문객 수가 들어있는 배열 visitor가 매개변수로 주어질 때, 가장 많은 방문객 수와 두 번째로 많은 방문객 수의 차이를 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 funca, funcb, func_c 함수를 알맞게 채워주세요.
매개변수 설명
N 일 동안의 방문객 수가 들어있는 배열 visitor가 solution 함수의 매개변수로 주어집니다.
visitor 는 N일 동안의 공항 방문객 수가 들어있는 배열입니다.
visitor 의 길이는 1 이상 100 이하이며, 원소는 1 이상 200,000이하의 자연수입니다.
visitor에는 같은 숫자가 중복해서 들어있지 않습니다.
return 값 설명
solution 함수는 가장 많은 방문객 수와 두 번째로 많은 방문객 수의 차이를 return 합니다.
예시 설명
예시
visitor | result |
[4,7,2,9,3] | 2 |
설명
예시 #1
5일 동안의 공항 방문객 수는 순서대로 [4명, 7명, 2명, 9명, 3명]입니다.
- 가장 많은 방문객이 방문한 날은 넷째 날로 총 9명이 방문했습니다.
- 두 번째로 많은 방문객이 방문한 날은 둘째 날로 총 7명이 방문했습니다.
따라서 가장 많은 방문객 수와 두 번째로 많은 방문객 수의 차이는 2입니다.
작성 코드
def func_a(arr, n):
ret = []
for x in arr:
if x != n:
ret.append(x)
return ret
def func_b(a, b):
if a >= b:
return a - b
else:
return b - a
def func_c(arr):
ret = -1
for x in arr:
if ret < x:
ret = x
return ret
def solution(visitor):
max_first = func_c(visitor)
visitor_removed = func_a(visitor, max_first)
max_second = func_c(visitor_removed)
answer = func_b(max_second, max_first)
return answer
728x90
반응형
'알고리즘 > COS Pro' 카테고리의 다른 글
[COS Pro 2급] 키가 K보다 큰 사람 / 파이썬 (0) | 2022.05.03 |
---|---|
[COS Pro 2급] 개구리 / 파이썬 (0) | 2022.05.02 |
[COS Pro 2급] 학점 계산 / 파이썬 (0) | 2022.05.01 |
[COS Pro 2급] 총점 / 파이썬 (0) | 2022.04.29 |
[COS Pro 2급] n부터 m까지 자연수의 합 / 파이썬 (0) | 2022.04.29 |
Comments