본문 바로가기

코딩테스트/정렬4

[2차원 배열 서로 다른 기준으로 정렬] 인사고과 https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡문제 분석 요약 [근무태도점수, 동료평가점수] 점수 합 = 근무태도 점수 + 동료 평가 점수 1. 기준 미달 사원 제외 2. 제외하고 남은 사원 점수 합 내림차순 정렬하여 등수 매기기 3. 정렬할 때, 완호의 점수 위치가 바뀌므로 원호의 점수를 따로 저장 💡알고리즘 설계 1. 정렬하기 근무 태도 점수로 일단 내림차순을 하고, 근무 태도 점수가 동일할 경우, 동료 평가 점수로 오름차순 정렬한다... 2024. 4. 4.
Comparator, Lamda 사용하여 2차원 배열 정렬하기 2차원 배열을 바로 Arrray.sort()를 통해 정렬하려고 하면 java.lang.ClassCastException: I cannot be cast to java.lang.Comparable 오류가 발생합니다. 원인은 비교 기준이 구현되어 있지 않기 때문에 캐스팅에 실패했기 때문이라 아래와 같이 Comparable,Comparator 인터페이스를 구현하여 정렬기준을 추가해 줘야 합니다. 2차원배열 뿐만 아니라 객체비교할 때도 동일한 유사하니 참고해주세요. 1. Comparator 익명 클래스 구현 int[][] arr = new int[][]{{5,40},{3,50},{1,30},{4,20},{2,10}}; // 1. Comparator 익명 클래스 구현 Arrays.sort(arr, new Comp.. 2024. 2. 20.
Arrays.sort( ) - String 타입 / Integer 타입 Arrays.sort( ) 1. String 타입의 정수배열을 sort()로 정렬하면 "숫자문자열"의 첫번째 index의 "숫자문자"에 따라 정렬된다. ex) String array[] = {"3","1117","213","543","12345678"} Arrays.sort(array); // ["1117","12345678","213","3","543"] Arrays.sort(arr,(a,b)->a.compareTo(b)) // 오름차순 : ["1117","12345678","213","3","543"] Arrays.sort(arr,(a,b)->b.compareTo(a)) // 내림차순 : ["543","3","213","12345678","1117"] Arrays.sort(arr,(a,b) -> a-.. 2024. 2. 15.
배열(Arrays)의 효율적인 사용 https://school.programmers.co.kr/learn/courses/30/lessons/42746 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정.. 2024. 2. 7.