프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
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 합니다.
예시
예시 설명
예시 #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_first, max_second)**
return answer
접근 방식
- func_a : arr에 있는 숫자 중 n이 아닌 것들만 따로 출력
- func_b : a가 b보다 크면 a에서 b를 뺌
- func_c : arr 중 가장 큰 수를 출력
- max_first : 방문객 중 가장 큰 수를 출력해야 하므로 func_c 함수 사용
- visitor_removed : 가장 큰 수를 제거해야 하므로 func_a 함수 사용
- max_second : 가장 큰 수를 제거한 방문객 중 그 다음 큰 수를 제거해야 하므로 func_c 함수 사용
- answer : 2개의 숫자의 차를 구해야 하므로 func_b 함수 사용
'코딩 테스트 > COS PRO Python 2급' 카테고리의 다른 글
[프로그래머스 - COS PRO 파이썬 2급] 6. 키가 K보다 큰 사람 (0) | 2022.07.08 |
---|---|
[프로그래머스 - COS PRO 파이썬 2급] 5. 개구리 (0) | 2022.07.05 |
[프로그래머스 - COS PRO 파이썬 2급] 4. 학점 계산 (0) | 2022.07.05 |
[프로그래머스 - COS PRO 파이썬 2급] 2. 총점 (0) | 2022.07.05 |
[프로그래머스 - COS PRO 파이썬 2급] 1. n부터 m까지 자연수의 합 (0) | 2022.07.05 |