본문 바로가기
반응형

Language252

자바 이진검색(Binary Search) 알고리즘 정리 이진검색(Binary Search) 알고리즘은 정렬되어 있는 데이터를 절반씩 나눠 검색하는 방식인데 순차 검색 방법이 모든 데이터를 다 확인해본다면 이진 검색은 데이터를 절반으로 나눠가면서 찾게 된다 먼저 데이터가 오름차순으로 되어있지 않을 때는 오름차순으로 데이터를 정렬하고 low는 0으로 (배열의 처음 인덱스) high는 해당 배열의 마지막 인덱스로 초기화한다 다음은 while을 돌려주면서 low + high / 2 를 해서 mid 값을 구하는데 mid를 배열의 인덱스로 넣었을 경우의 값이 찾는 값과 동일하다면 바로 끝이 나지만 그렇지 않을 경우에는 해당 값이 찾는 값(Search)보다 크냐 작냐에 따라 low, high를 바꿔주게 되는데 Search 값이 mid를 배열의 인덱스로 넣었을 경우보다 작.. 2021. 5. 30.
자바 선택정렬(Selection Sort) 알고리즘 정리 선택정렬(Selection Sort) 알고리즘은 데이터 하나를 기준으로 다른 데이터와 비교하여 가장 작거나 / 큰 데이터와 자리를 바꾸는 식으로 반복 비교하는 정렬을 수행하게 되는데 데이터의 개수가 N개라면 N-1회 회전(for문)을 하게 된다 먼저 반복 정렬이 어느 식으로 움직이는지 알아야 하는데 이게 가장 중요한 부분인 만큼 두 눈 크게 뜨고 잘 보자 1회차 5 3 1 2 4 2회차 1 5 3 2 4 3회차 1 2 5 3 4 5 3 1 2 4 가 들어있는 배열에서 오름차순 정렬을 할 경우에는 5는 3보다 크기 때문에 5와 3의 위치를 바꿔서 3 5 1 2 4 가 되고 arr[i]에 3이 들어가게 된다 (비교 대상이 5에서 3이 된다는 말) 이후 3은 1보다 크기 때문에 3과 1의 위치를 바꿔서 1 5.. 2021. 5. 29.
자바 순위(Rank) 알고리즘 정리 순위(Rank) 알고리즘이란 주어진 범위 데이터의 순위를 구하는 알고리즘인데 중요한 점은 순위를 보관할 배열을 추가로 하나 만들어서 해당 배열에 값별 순위를 넣어줘야 한다 이후 for 문을 돌리면서 해당 값의 순위를 1로 시작하고 for 문 안에서 for 문을 한번 더 돌리면서 배열의 i값과 다른 값(j)들을 비교하는데 배열의 i값보다 큰 값이 있으면 i값에 해당하는 순위 배열의 i값을 1씩 올려주면 된다 이러면 for 문이 돌아가면서 값을 가지고 다른 값들과 비교하면서 현재 값보다 클 경우 +1을 해 주기 때문에 값별 순위가 쭉 들어가게 된다 이후 출력해보면 값별로 순위가 제대로 찍혀 나오는 것이 보인다 결국 순위 알고리즘의 포인트는 값 배열 / 순위 배열 두 배열을 만든 뒤 for 문을 2번 돌려주면.. 2021. 5. 29.
자바 근사값(Near) 알고리즘 정리 근사값(Near) 알고리즘이란 전체 데이터 중 특정 데이터와 가장 근접한 값을 말하는데 포인트는 배열의 각 값 - 특정 값 계산 뒤 절대값으로 변환해서 for문 돌리며 비교 후 가장 작은 수를 가져와주면 그게 근사값이 되겠다 먼저 변수의 최소값을 해당 변수에 지정할 수 있는 가장 큰 숫자를 넣어주고 다음으로 for 문을 돌리는 과정에서 배열의 인덱스별 값 - 특정 값 을 한 뒤에 Math.abs로 절대값을 구하는데 만약 Math.abs를 사용하지 않고 절대값을 구하려면 값 < 0 ? -값 : 값 이런 식으로 삼항연산자를 사용해 0보다 작다면 -를 한번 더 해줘서 양수로 만들고 양수면 그냥 반환하는 식으로 따라해주면 된다 근사값의 경우에는 절대값을 구한 후에는 for 문을 돌리면서 현재 최소값보다 작을 경.. 2021. 5. 29.
자바 최소값(Min) 알고리즘 정리 최소값 알고리즘이란 주어진 범위의 값 중에서 가장 작은 값을 말하는데 최대값 알고리즘과 비교해보면 반대로만 따라하면 되는 식이다 먼저 최소값을 해당 변수의 최대값으로 설정해 준 뒤 for 문을 돌리면서 배열의 값이 현재 최소값보다 작다면 최소값을 교체해주면 되는 식이다 마지막으로 예제에 사용한 코드는 아래와 같다 public static void main(String[] args) { // 최소값 알고리즘(Min Algorithm) // 주어진 범위의 값 중 가장 작은 값 int answer = Integer.MAX_VALUE; // 최대값으로 초기화 int[] arr = {10, 50, 30, -2, 9}; for(int i = 0; i arr[i]) { // 배열값이 answer 보다 작다면 answ.. 2021. 5. 29.
자바 String 줄 바꾸는(개행) 방법 자바에서 엔터 느낌으로 줄 바꾸기를 해 주려면 \r 을 사용하면 되는데 위 예제를 보면 AA BB 사이에 \r 을 넣어주니 개행이 잘 되는 것이 보인다 2021. 5. 28.

반응형