학습
시험

학생 번호 정하기

난이도
BEGINNER

문제 설명

데알중학교는 전체 n명의 학생에 대해, 각각의 키(heights)와 이름(names) 정보를 관리하고 있습니다.
어느 날 데알중학교는 기존의 학생 번호를 폐지하고 새로운 학생 번호 체계를 도입하고자 합니다. 새로운 학생 번호 체계는 다음과 같습니다.

학생의 키를 기준으로 오름차순 정렬한다.
키가 동일한 학생들에 대해서는 이름을 기준으로 오름차순 정렬한다.
정렬된 학생들에게 1번부터 학생 번호를 부여한다.

기존의 학생 번호 순서대로 정수 배열 heights와 문자열 배열 names가 주어질 때, 기존의 학생 번호 순서대로, 새롭게 부여받은 학생 번호를 반환하는 solution 함수를 작성하시오.

데알중학교의 모든 학생에 대하여 키와 이름이 모두 같은 학생 쌍은 없다고 가정합니다.


제한 사항

  • heights와 names의 길이(전체 학생의 수)는 1 이상 10,000 이하입니다.

  • heights의 길이와 names의 길이는 동일하게 입력이 주어집니다.

  • heights의 원소는 100 이상 200 이하의 자연수입니다.

    • heights의 i번째 원소는 기존 학생 번호가 i인 학생의 키를 의미합니다.
  • names의 원소는 1글자 이상 20글자 이하의 소문자 알파벳으로만 이루어진 문자열입니다.

    • names의 i번째 원소는 기존 학생 번호가 i인 학생의 이름을 의미합니다.

예시 테스트케이스 설명

테스트케이스 번호 heights names return
1 [170, 165, 170, 160, 175] ["john", "alice", "bob", "charlie", "david"] [4,2,3,1,5]
2 [150, 150, 150, 152] ["zoe", "amy", "bob", "dan"] [3,1,2,4]
3 [165, 160, 155] ["lucas", "lucas", "lucas"] [3,2,1]

1번 테스트케이스 설명

  • 입력된 학생 목록으로 기존 학생 번호순으로 정렬했을 때와 새로운 학생 번호순으로 정렬했을 때 결과는 각각 아래의 표와 같습니다.

    기존 번호 키 이름 새로운 번호
    1 170 "john" 4
    2 165 "alice" 2
    3 170 "bob" 3
    4 160 "charlie" 1
    5 175 "david" 5
    기존 번호 키 이름 새로운 번호
    4 160 "charlie" 1
    2 165 "alice" 2
    3 170 "bob" 3
    1 170 "john" 4
    5 175 "david" 5
  • 따라서 기존 학생 번호순으로 부여받은 새로운 학생 번호 배열은 [4,2,3,1,5]입니다.

2번 테스트케이스 설명

  • 입력된 학생 목록으로 기존 학생 번호순으로 정렬했을 때와 새로운 학생 번호순으로 정렬했을 때 결과는 각각 아래의 표와 같습니다.

    기존 번호 키 이름 새로운 번호
    1 150 "zoe" 3
    2 150 "amy" 1
    3 150 "bob" 2
    4 152 "dan" 4
    기존 번호 키 이름 새로운 번호
    2 150 "amy" 1
    3 150 "bob" 2
    1 150 "zoe" 3
    4 152 "dan" 4
  • 따라서 기존 학생 번호순으로 부여받은 새로운 학생 번호 배열은 [3,1,2,4]입니다.

3번 테스트케이스 설명

  • 입력된 학생 목록으로 기존 학생 번호순으로 정렬했을 때와 새로운 학생 번호순으로 정렬했을 때 결과는 각각 아래의 표와 같습니다.

    기존 번호 키 이름 새로운 번호
    1 165 "lucas" 3
    2 160 "lucas" 2
    3 155 "lucas" 1
    기존 번호 키 이름 새로운 번호
    3 155 "lucas" 1
    2 160 "lucas" 2
    1 165 "lucas" 3
  • 따라서 기존 학생 번호순으로 부여받은 새로운 학생 번호 배열은 [3,2,1]입니다.