code/[프로그래머스] python

[코딩 테스트 연습 입문] 가장 큰 수 찾기

오리는짹짹 2022. 12. 28. 09:31

문제

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

 

❗제한사항

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

 

입출력 예

 

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

 

✔풀이

def solution(array):
    sort_array=sorted(array)
    max_number=sort_array[-1]
    return [max_number,array.index(max_number)]

📝설명

array의 가장 큰 값을 찾아내고, 그 큰 값이 array의 몇번째 인덱스에 존재하는지 찾아야 한다.

가장 큰 값을 찾기 위해서 sort_array라는 변수에 sorted()를 통해 array를 정렬한다.

그러면 가장 작은 수에서 가장 큰 수 순으로 정렬이 되는데, 마지막에 위치한 숫자가 가장 크기 때문에, 인덱스 넘버[-1]를 뽑아서 max_number에 저장한다.

return값을 리스트로 뽑아내야 하므로, 가장 큰 수는 앞서 저장한 max_number과 array에서 max_number의 인덱스를 뽑아내면 끝!

개선한다면?

max_number을 max(array)로 하면서 간결화

 

👑모범 답안

 

👀느낀 점

: 어렵게 생각하다보니까 코드가 길어진다.

그렇다고 내 코드가 틀린 건 아니지만, 보다 짧고 이해하기 쉬운 코드가 있다면! 그런 코드를 추구해야 한다.

내 코드의 방향성을 생각하면서 노력해야겠다.