숫자 카드2 라는 문제를 풀어보았다. 정렬을 활용해서 풀었지만 이분 탐색 , 배열에 저장 등 다양한 풀이 방법이 있다는 걸 알게되었고 그 중 이분탐색으로 정리하고자 한다. 이분탐색 개념 먼저 이분탐색 개념에 대해 알아보자. 이름 그대로 두개로 나누어서 탐색한다는 뜻이다. 처음에 low값과 high값을 각각 정렬된 배열의 시작점과 끝점으로 정하고 그 중간지점을 mid값으로 정한다. 만약 데이터의 중복이 없고 데이터와 같은 값을 찾았으면 바로 index를 리턴해주면 된다 하지만 데이터에 중복이 있으면 upperbound와 lowerbound를 찾아 시작index와 끝index를 찾아 주어야한다. 문제 이 문제는 데이터에 중복이 있기 때문에 upperbound와 lowerbound를 통해 data중에 inde..
문제 풀이 Arrays.sort() 라는 함수를 사용하여 정렬하여 볼 것이다. 이 함수는 기본적으로 오름차순으로 정렬을 한다. 하지만 정렬하는 방법은 comparator안의 함수를 override함에 따라 바꿀 수 있다. Comparator 의 return 값이 바꾸지 않는다 return 값이 >0 -> 바꾼다 문제는 배열에 String값이 2개가 들어가면 그값을 어떻게 비교하냐 이다. 방법은 Compartor를 override하여 안에서 나이 값만 Int형으로 바꿔서 비교하면 되는 것이다. import java.io.*; import java.util.*; public class Main{ public static void main(String args[])throws IOException{ Buffe..