코린이의 소소한 공부노트

[LeetCode/Easy] 2418. Sort the People 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2418. Sort the People

무지맘 2023. 5. 3. 13:03

1. Input

1) String[] names

2) int[] heights

 

2. Output

1) 키가 큰 사람부터 차례대로 정렬된 이름을 담은 배열을 반환

- heights[i] == names[i]의 키

 

3. Constraint

1) n == names.length == heights.length

2) 1 <= n <= 10^3

3) 1 <= names[i].length <= 20

4) 1 <= heights[i] <= 10^5

5) names[i]는 영어 대소문자로 이루어져 있다.

6) heights에는 중복 값이 없다.

 

4. Example

Input: names = ["Mary","John","Emma"], heights = [180,165,170] -> Output: ["Mary","Emma","John"]

 

5. Code

1) 첫 코드(2023/05/03)

class Solution {
    public String[] sortPeople(String[] names, int[] heights) {
        ArrayList<Integer> list = new ArrayList<>();
        for(int i : heights)
            list.add(i);
        list.sort(Comparator.reverseOrder());
        HashMap<Integer,String> m = new HashMap<>();
        for(int i=0 ; i<names.length ; i++)
            m.put(heights[i],names[i]);
        for(int i=0 ; i<names.length ; i++)
            names[i] = m.get(list.get(i));
        return names;
    }
}