정렬 단원의 첫 문제다. 효율을 덜 따지고 코드를 짠다면, 배열을 이용해 Arrays 함수를 이용해 주거나, 버블정렬을 이용해 임의의 변수값을 통해서 다음 배열과 대소를 비교해 바꾸는 방법이있다. 또는, 삽입정렬을 이용해서 수를 배열속 모든 수와 따로 비교해 가장 작은
Arrays.sort를 써서 풀었는데 시간초과가 걸리는 경우가 생겼다.st-lab의 글을 참고하자면, Collections.sort()는 Timsort이기에 합병, 삽입 정렬 알고리즘을 사용한다. 합병 정렬은 nlogn의 시간복잡도를 가진다. 그리고 삽입정렬은 N^2
처음에는 헷갈렸던 countingsort를 이번 문제를 통해 확실히 이해를 하게되었다.출처 : Stranger's Lab간단한 것을 이론을 보고 어렵다고 생각했었다. 이전에 아스키코드로 문자에 해당하는 배열을 찾았듯이, 입력받은 수를 배열안에 집어넣고 그 배열의 값을
통계학에서 4가지의 값1\. 산술평균 : N개의 수들의 합을 N으로 나눈 값2\. 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값3\. 최빈값 : N개의 수들 중 가장 많이 나타나는 값4\. 범위 : N개의 수들 중 최댓값과 최솟값의 차이
단순하게 정렬하는 문제다. 내림차순으로 정렬해야하는데2341을 입력받으면, 4321을 출력해야한다.이 문제는 countingsort를 사용하지 않을 것이다. N의 범위가 1,000,000,000이나 되므로 공간을 낭비하기 때문이다. 그렇다면 내가 생각할 수 있는 방법은
x와 y의 좌표를 입력받아서 순서대로 출력하는 문제다.x좌표를 오름차순으로 정렬하되, x값이 같다면 y의 값을 기준으로 정렬해야한다.나는 2차원 배열을 만들어 행마다 x, y값을 입력받을 것이다.행에 해당하는 1열을 기준으로 비교해서 정렬하고, 순차적으로 비교해서 값이
이전 문제와 매우 유사한 문제라서 값만 바꿔주겠다.주의할 점은 Arrays.sort의 compare 메소드는 차례대로 읽기 때문에 y를 기준으로 정렬해주기 위해서는 arri 부터 입력받아 arri 순서대로 입력하고 출력해야한다.\*\* 지금은 오름차순으로 e1 = 작은
이전 문제들에서 comparator 메소드를 이용해서 문제를 풀었는데, 간단하게 형태만 외우는게 아니라 이해도가 확실히 필요했다.쉽게 사용할 수 있게 정리하자면, compare를 통한 compareTo 메소드는 자기자신 s1과 다른 매개변수를 비교해서 양수면 자리를 바
온라인 회원의 나이와 이름을 오름차순으로 정렬해주는 문제다. 나이가 같다면 입력받은 순서대로 정렬한다. 이전 문제들과 같이 comparator을 활용해서 문자열로 입력받은 나이에 해당하는변수 age를 비교해주고 같을 경우에는 순서에 맞게 출력하도록 해보겠다. 나는
좌표 압축에 대해 알아보자.주어진 문제는 주어진 입력들 사이에서 스스로보다 작은 값들의 개수를 출력해야한다.ex)52 4 -10 4 -9출력2 3 0 3 1여러가지 방법을 적용해보겠다.countingsort는 1,000,000,000 만큼의 배열을 생성해줘야 하므로,