LeetCode - 1051. Height Checker(Array, Sorting, Counting Sort)

YAMAMAMO·2022년 2월 3일
0

LeetCode

목록 보기
12/100

문제

https://leetcode.com/problems/height-checker/

A school is trying to take an annual photo of all the students. The students are asked to stand in a single file line in non-decreasing order by height. Let this ordering be represented by the integer array expected where expected[i] is the expected height of the ith student in line.
You are given an integer array heights representing the current order that the students are standing in. Each heights[i] is the height of the ith student in line (0-indexed).
Return the number of indices where heights[i] != expected[i].

파파고번역
한 학교에서 모든 학생들의 연간 사진을 찍으려고 합니다. 학생들은 높이별로 감소하지 않는 순서로 한 줄에 서야 한다. 이 순서를 예상되는 정수 배열로 나타내도록 하자. 여기서 expected [i]는 줄에서 ith 학생의 예상 높이이다.
학생이 서 있는 현재 순서를 나타내는 정수 배열 높이가 지정됩니다. 각 높이[i]는 줄에 있는 i번째 학생의 키이다(0-indexed).
heights[i] != expected[i]가 되는 인덱스 수를 반환합니다.

Example 1:

Input: heights = [1,1,4,2,1,3]
Output: 3
Explanation:
heights: [1,1,4,2,1,3]
expected: [1,1,1,2,3,4]
Indices 2, 4, and 5 do not match.

Example 2:

Input: heights = [5,1,2,3,4]
Output: 5
Explanation:
heights: [5,1,2,3,4]
expected: [1,2,3,4,5]
All indices do not match.

Example 3:

Input: heights = [1,2,3,4,5]
Output: 0
Explanation:
heights: [1,2,3,4,5]
expected: [1,2,3,4,5]
All indices match.

풀이

자바입니다.

  • 주어진 배열 heights을 배열 a에 복사합니다.
  • heights 를 오름차순으로 정렬합니다.
  • heights 와 a 값을 비교후 같으면 count++ 합니다.
class Solution {
    public int heightChecker(int[] heights) {
        int[] a = heights.clone();
        Arrays.sort(heights);
        int count = 0;
        for(int i=0;i<heights.length;i++){
            if(a[i]!=heights[i]){
                count++;
            }
        }
        return count;
        
    }
}
profile
안드로이드 개발자

0개의 댓글