가장 큰 수 찾기

2024. 9. 14. 18:00코딩테스트 입문

https://school.programmers.co.kr/learn/courses/30/lessons/120899

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array 원소 ≤ 1,000
  • array에 중복된 숫자는 없습니다.

입출력 예

array result
[1, 8, 3] [8, 1]
[9, 10, 11, 8] [11, 2]

입출력 예 설명
입출력 예 #1

  • 1, 8, 3 중 가장 큰 수는 8이고 인덱스 1에 있습니다.

입출력 예 #2

  • 9, 10, 11, 8 중 가장 큰 수는 11이고 인덱스 2에 있습니다.

정수가 담긴 배열 array가 주어졌을 때, 그 중 가장 큰 값과 그 인덱스를 구하는 문제입니다.

 

이 문제를 보니까 이번에는 index 함수가 바로 떠올랐습니다. 최댓값은 max 함수로 구하고, 그 인덱스는 index 함수를 사용해서 문제를 풀어보겠습니다. 중복은 없기 때문에 정확한 인덱스를 반환할 수 있습니다.

파이썬으로 문제를 풀어보겠습니다.

def solution(array):
    # 최댓값(max), 인덱스(index) 함수 사용
    answer = [max(array), array.index(max(array))]
    return answer

 

max(array)을 사용해 배열의 최댓값을 구하고, 해당 최댓값의 인덱스를 인덱스 함수를 통해서 가져왔습니다.

index 함수는 index(value)로, value 값이 처음 등장하는 인덱스를 가져오는 함수입니다.

 

이런 함수들을 사용하지 않고 반복문으로 값을 비교해서도 가능합니다.

enumerate 함수를 사용해서 값과 인덱스를 동시에 가져오고, 이전 값과 비교해서 더 큰 값이면 최댓값과 인덱스를 반환하는 방법으로도 문제를 풀 수 있습니다.

'코딩테스트 입문' 카테고리의 다른 글

배열의 유사도  (0) 2024.09.16
문자열 계산하기  (0) 2024.09.15
편지  (0) 2024.09.13
약수 구하기  (0) 2024.09.12
한 번만 등장한 문자  (0) 2024.09.11