Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- wan
- 백준
- jmx
- 배열최소값최대값
- name=springapplication
- dbeaver
- 도커권한설정
- 네트워크모델
- 포트포워딩 안될때
- 포트포워딩
- 도커
- 배열복사
- springboot
- 디비버
- javax.management.instancenotfoundexception: org.springframework.boot:type=admin
- 유니캐스트
- 리눅스계열
- 리눅스환경
- 백준1946
- 오름차순
- 배열빈도수
- 우분투
- 브로드캐스트
- SpringApplication
- Decapsulation
- ubuntu
- 페이로드
- instancenotfoundexception
- 모래시계출력
- docker
Archives
- Today
- Total
다잘하고싶어
백준 1946. 신입사원 (Comparator 를 사용하여 객체배열 오름차순) 본문
Person 객체를 생성해서 멤버변수로 서류등수와 면접등수를 선언했다
Comparator 를 이용하여 객체배열을 서류등수 기준으로 오름차순 정렬한 후,
면접 등수를 비교하여 신입사원으로 채용가능한 숫자를 증가시키는 방향으로 진행했다.
이미 서류기준 정렬이 되어 있으므로, 다음인덱스의 서류 등수는 이전 인덱스의 서류 등수보다 낮다
따라서 현재 인덱스의 면접 등수는 그동안의 이전 인덱스들의 면접 등수보다 높아야 한다
for 돌면서 min 값을 갱신하고, 들고가면서 비교해야한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class 신입사원 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for (int tc = 0; tc < T; tc++) {
int cnt = 1;
int n = Integer.parseInt(br.readLine());
Person[] persons = new Person[n];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
int basic = Integer.parseInt(st.nextToken());
int interview = Integer.parseInt(st.nextToken());
Person p = new Person(basic, interview);
persons[i] = p;
}
//면접순위별로 정렬
Arrays.sort(persons, new Comparator<Person>(){
@Override
public int compare(Person p1, Person p2){
if(p2.paper<p1.paper) return 1;
else if(p2.paper==p1.paper) return 0;
else return -1;
}
});
int min = persons[0].speech;
for (int i = 1; i < n; i++) {
if(persons[i].speech < min){
cnt++;
min = persons[i].speech;
}
}
sb.append(cnt).append('\n');
}//TC
System.out.println(sb);
}//main
}
class Person{
int paper;
int speech;
public Person(int paper, int speech) {
this.paper = paper;
this.speech = speech;
}
}
'알고리즘' 카테고리의 다른 글
length, length(), size() (0) | 2022.11.03 |
---|---|
[알고리즘] BFS 너비우선탐색 (0) | 2022.10.06 |
[알고리즘]BufferedReader 사용 (1) | 2022.10.06 |
[알고리즘] 빅오표기법(Big-O Notation), 시간복잡도, 공간복잡도 (0) | 2022.10.06 |
알고리즘 개념 공부 순서 (1) | 2022.09.21 |