https://www.acmicpc.net/problem/14593


◎알고리즘 [풀이과정]
위 문제에 알려준 예외를 if문을 사용하여 작성하면 쉽게 해결할 수 있다.
- 해결한 문제 점수의 총합이 높은 참가자가 더 높은 순위를 가진다.
- 점수의 총합이 같은 경우, 제출 횟수가 적은 참가자가 더 높은 순위를 가진다.
- 점수의 총합과 제출 횟수가 같은 경우, 마지막으로 점수를 획득한 문제의 업로드 시간이 빠른 참가자가 더 높은 순위를 가진다.
가장 첫번째는 종합점수를 기준으로 1등 참가자의 번호를 저장해 놓는다.
저장해 놓은 참가자의 종합점수 비교할 종합점수와 같다면 제출 횟수가 적은 참가자를 1등 참가자로 저장한다.
저장해 놓은 참가자의 제출 횟수까지 동일하다면 마지막인 제출시간을 비교하여 가작 적은 참가자의 번호를 1등 참가자로 저장한다.
위 과정을 모든 참가자들과 비교하여 결과를 출력한다.
import java.util.Scanner;
public class st_14593 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int [][] SCL = new int[num][3];
for(int i = 0;i<num;i++) {
SCL[i][0] = sc.nextInt();
SCL[i][1] = sc.nextInt();
SCL[i][2] = sc.nextInt();
}
int s = SCL[0][0];
int c = SCL[0][1];
int l = SCL[0][2];
int result = 1;
for(int i = 1;i<num;i++) {
if(SCL[i][0]>s) {
s = SCL[i][0];
c = SCL[i][1];
l = SCL[i][2];
result = i+1;
}
if(s == SCL[i][0]) {
if(c>SCL[i][1]) {
s = SCL[i][0];
c = SCL[i][1];
l = SCL[i][2];
result = i+1;
}
else if(c == SCL[i][1]) {
if(l>SCL[i][2]) {
s = SCL[i][0];
c = SCL[i][1];
l = SCL[i][2];
result = i+1;
}
}
}
}
System.out.println(result);
}
}'알고리즘 > 랜덤 마라톤' 카테고리의 다른 글
| [백준] 2028번: 자기복제수 - JAVA[랜덤 마라톤] (0) | 2024.08.31 |
|---|---|
| [백준] 11466번: Alex Origami Squares - JAVA[랜덤 마라톤] (0) | 2024.08.30 |
| [백준] 15751번: Teleportation - JAVA[랜덤 마라톤] (0) | 2024.08.29 |
| [백준] 22938번: 백발백준하는 명사수 - JAVA[랜덤 마라톤] (2) | 2024.08.28 |
| [백준] 23253번: 자료구조는 정말 최고야 - JAVA[랜덤 마라톤] (1) | 2024.08.27 |