728x90
반응형
https://www.acmicpc.net/problem/23334
풀이
금메달, 은메달, 동메달 나눠서 값을 비교한 후 answer를 바꿔주다가 마지막에 제출할 경우 800~900사이로 java11만 될겁니다(시간초과가 나올 수도 있음)
이러한 방법은 어쩔땐 성공하고 어쩔땐 실패하므로 올바른 방법이 아닙니다.
- g, s, b ∈ {0, 1, ..., 999}
조건에 이러한 부분이 있으므로 금메달 * 1000000 + 은메달 * 1000 + 동메달
으로 계산해서 max를 체크할 경우 서로의 갯수가 건드리지 않고 계산하므로 이렇게 계산할 경우 완벽하게 차이를 체크할 수 있습니다.
또한 max의 값을 체크한 후에 max값을 넘을 경우에만 뒤에 answer을 받아주면 불필요한 부분을 받지 않아도 되서 좀 더 빠르게 풀 수 있습니다.
※ 도움 : nahwasa님
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int max = 0;
String answer = "";
while(n --> 0) {
String[] str = br.readLine().split(" ");
int a = Integer.parseInt(str[0]) * 1000000 + Integer.parseInt(str[1]) * 1000 + Integer.parseInt(str[2]);
if(max < a) {
max = a;
answer = "";
for(int i = 3; i < str.length; i++) {
answer += str[i] + " ";
}
}
}
System.out.print(answer);
}
}
728x90
반응형
'백준 > 20001 - 25000' 카테고리의 다른 글
[백준] 23292번 : 코딩 바이오리듬(JAVA) (0) | 2021.10.31 |
---|---|
[백준] 23335번 : Aliquot Sum(JAVA) (0) | 2021.10.31 |
[백준] 23336번 : A Sorting Problem(JAVA) (0) | 2021.10.30 |
[백준] 23343번 : JavaScript(JAVA) (0) | 2021.10.30 |
[백준] 23278번 : 영화 평가(JAVA) (0) | 2021.10.24 |
댓글