2019년 4월 15일 월요일

Hackerrank Day 14 Scope







알고리즘 연습 사이트


Day 14:Scope



스코프라는 것은 프로그램 안에서 어떤 변수가 미치는 영역, 범위를 말한다. 
어떤 변수가 선언되면 그 지역을 벗어날 때까지 그 변수는 유효하다.
생성자의 파라미터는 보통 인스턴스 변수와 이름을 동일하게 하고 this 키워드를 이용하여 값을 초기화 해준다. 


14일차는 int 형의 양수 배열 elements에 대해 절대값이 가장 큰 숫자를 구하는 문제이다.

어떤 두 수의 뺄셈의 절대값이 가장 크려면, 가장 큰 수에서 가장 작은 수를 빼면 된다.
두 수의 거리가 가장 긴게 절대값이 크다고 이해하면 될 것이다.
배열을 sort하면 기본 오름차순 정렬이 된다.
그리고 마지막 배열의 숫자와 0번째 숫자를 빼면 된다. 
elements에 들어있는 수에는 음수가 없으므로 단순히 빼주기만 하면 된다.


 
class Difference {
   private int[] elements;
   public int maximumDifference;

    Difference(int[] elements){
        this.elements = elements;
    }

    void computeDifference(){
        Arrays.sort(elements); //오름차순 정렬
        maximumDifference = elements[elements.length-1] - elements[0];
    }
} 

댓글 없음:

댓글 쓰기