프로그래머스 | Python | 등수 매기기

2025. 1. 10. 10:59·프로그래머스

 

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

내코드

def solution(score):
    averages = [(sum(scores) / 2) for scores in score]
    sorted_avg = sorted(averages, reverse=True)
    ranks = [sorted_avg.index(avg) + 1 for avg in averages]
    return ranks

코드설명

  1. 평균 점수 계산: 각 학생의 영어 점수와 수학 점수를 합산한 뒤 2로 나눠 평균 점수를 구합니다.
  2. 내림차순 정렬: 구한 평균 점수를 내림차순으로 정렬합니다.
  3. 등수 계산: 각 학생의 평균 점수를 기준으로 정렬된 리스트에서의 위치를 찾고, 이를 1부터 시작하는 등수로 변환하여 결과 리스트에 담습니다.

특징

  • 평균 점수를 기준으로 순위를 매깁니다.
  • **sorted**를 활용해 내림차순 정렬 후, **index**를 사용해 순위를 계산했습니다.
  • 단순히 평균 점수를 기준으로 정렬하는 로직이라 명확합니다.

다른 코드

def solution(score):
    a = sorted([sum(i) for i in score], reverse=True)
    return [a.index(sum(i)) + 1 for i in score]

코드설명

  1. 총점 계산: 각 학생의 영어 점수와 수학 점수를 합산하여 총점을 계산합니다.
  2. 내림차순 정렬: 총점을 내림차순으로 정렬합니다.
  3. 등수 계산: 각 학생의 총점을 기준으로 정렬된 리스트에서의 위치를 찾아 등수를 계산합니다.

특징

  • 평균 대신 총점을 기준으로 순위를 매깁니다.
  • 간결한 표현으로 작성되어 있어 코드가 짧고 직관적입니다.
  • 점수를 기준으로 정렬한 뒤, **index**를 사용해 순위를 찾습니다.

두 코드 비교

  • 내 코드는 평균 점수를 계산해 사용하고, 다른 코드는 총점을 기준으로 사용합니다.
  • 두 코드 모두 정렬된 리스트에서 **index**를 이용해 순위를 찾는 방식은 동일합니다.
  • 내 코드는 평균 계산이라는 추가적인 연산이 있어 약간의 비효율이 있을 수 있지만, 문제에서 "평균 점수"를 기준으로 한다는 요구사항을 더 정확히 반영합니다.
  • 다른 코드는 평균 계산 대신 총점을 활용함으로써 연산이 간결하고, 코드 길이가 짧습니다.

결론

  • 두 코드 모두 등수를 매기는 기능을 잘 수행합니다.
  • 문제의 요구사항을 엄밀히 따르려면 평균 점수를 사용하는 내 코드가 더 적합합니다.
  • 간결한 코드와 효율성을 중시한다면 다른 코드도 충분히 좋은 선택입니다.
  • 실제 구현에서는 문제의 의도와 코드를 작성하는 상황에 따라 선택하면 좋을 것 같습니다.

'프로그래머스' 카테고리의 다른 글

프로그래머스 | Python | 문자열 밀기  (1) 2025.01.15
프로그래머스 | Python | 유한소수 판별하기  (0) 2025.01.13
프로그래머스 | Python | 치킨 쿠폰  (1) 2025.01.08
프로그래머스 | Python | 저주의 숫자 3  (1) 2025.01.07
프로그래머스 | Python | 종이 자르기  (0) 2025.01.06
'프로그래머스' 카테고리의 다른 글
  • 프로그래머스 | Python | 문자열 밀기
  • 프로그래머스 | Python | 유한소수 판별하기
  • 프로그래머스 | Python | 치킨 쿠폰
  • 프로그래머스 | Python | 저주의 숫자 3
audwndl
audwndl
audwndl 님의 블로그 입니다.
  • audwndl
    audwndl 님의 블로그
    audwndl
    • 분류 전체보기 (59)
      • 파이썬 (31)
      • 이게뭐야? (1)
      • 왜안돼? (1)
      • 프로그래머스 (26)
  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
audwndl
프로그래머스 | Python | 등수 매기기
상단으로

티스토리툴바