[BOJ 2437]秤-Java
7322 ワード
key points
Solution
例えば、N=7であるため、7個の重量を入力し、「3 1 6 2 7 30 1」はこれらの数字では計測できない量の中で最大値を求める.
1, 2, 3, 4(1+1+2), 5(2+3), 6, 7, 8(2+6)... これにより、20(1+1+2+3+6+7)に達することができる.したがって、これは21で測定できない浄水重量の中で最も高い値になるだろう.
しかし、もっと洗練された解題方法を見つけた.
入力秤錘重量は[31 6 2 7 301]
昇順で並べ替え、[1,236730]
秤[0]=1で測定できない最大値は2である.
秤[0]=1と秤[1]=1で測定できない最大値は3である.すなわち、最切り上げは、従来の秤錘重量(秤錘[0])では計測できなかった最切り上げ+秤錘[1]の値である.
秤錘[2]=2-->最高値5
秤錘[3]=3->最高価格8
秤錘[4]=6->最高値14
秤錘[5]=7->最高値21
秤錘[6]=30は最高値21より重い.
従って、N個の秤錘で測定できる最大値は21である.
# Codeimport java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/* Input */
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] array = new int[N];
for (int i = 0; i < N; i++) {
array[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(array);
/* Output */
int min = 1;
for (int i = 0; i < N; i++) {
if (min < array[i]) break;
min += array[i];
}
System.out.println(min);
br.close();
}
}
Result
System.out.printlnで作る時間もメモリも少し小さいです.ずっと気になってたけど.bw.書くこととシステム.out.printlnのパフォーマンスの違いを知りたいのですが:)
Reference
この問題について([BOJ 2437]秤-Java), 我々は、より多くの情報をここで見つけました
https://velog.io/@nari120/BOJ-2437-저울-Java
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/* Input */
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] array = new int[N];
for (int i = 0; i < N; i++) {
array[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(array);
/* Output */
int min = 1;
for (int i = 0; i < N; i++) {
if (min < array[i]) break;
min += array[i];
}
System.out.println(min);
br.close();
}
}
System.out.printlnで作る時間もメモリも少し小さいです.ずっと気になってたけど.bw.書くこととシステム.out.printlnのパフォーマンスの違いを知りたいのですが:)
Reference
この問題について([BOJ 2437]秤-Java), 我々は、より多くの情報をここで見つけました https://velog.io/@nari120/BOJ-2437-저울-Javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol