白駿10989:数列3
質問する
N個の数字が与えられた場合、昇順で並べ替えられたプログラムを作成します.
入力
第1行は、数の個数N(1≦N≦1000000)を与える.2行目から、N行の数字をあげます.この数は10000以下の自然数です.
しゅつりょく
1行目からN行目まで昇順に並べた結果、1行ずつ出力されます.
BOJ10989
に近づく
これは難しくないがかなり面白い問題だ.簡単にアクセスするだけで、1000000サイズの配列を作成し、すべての数字を入力してソート出力することができますが、メモリと時間の制限は非常に小さく、この方法は許可されません.
入力の最大値が10000であるため、10000サイズの配列を作成し、入力したインデックスに対応する配列値をビットマスクのように追加します.出力は、配列のインデックスが0でない場合、配列値と同じインデックス値を出力します.
時間が限られているので、JAVAで問題を解くためにはBufferedReaderとBufferedWriterを使わなければなりません.
コード#コード# import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bf.readLine());
int [] count = new int[10001];
for(int i = 0; i < n; i++) {
count[Integer.parseInt(bf.readLine())]++;
}
for(int i = 0; i < 10001; i++) {
if(count[i] != 0) {
for(int j = 0; j < count[i]; j++) {
bw.write(i + "\n");
}
}
}
bw.flush();
bw.close();
}
}
Reference
この問題について(白駿10989:数列3), 我々は、より多くの情報をここで見つけました
https://velog.io/@junza301/백준-10989-수-정렬하기-3
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
これは難しくないがかなり面白い問題だ.簡単にアクセスするだけで、1000000サイズの配列を作成し、すべての数字を入力してソート出力することができますが、メモリと時間の制限は非常に小さく、この方法は許可されません.
入力の最大値が10000であるため、10000サイズの配列を作成し、入力したインデックスに対応する配列値をビットマスクのように追加します.出力は、配列のインデックスが0でない場合、配列値と同じインデックス値を出力します.
時間が限られているので、JAVAで問題を解くためにはBufferedReaderとBufferedWriterを使わなければなりません.
コード#コード# import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bf.readLine());
int [] count = new int[10001];
for(int i = 0; i < n; i++) {
count[Integer.parseInt(bf.readLine())]++;
}
for(int i = 0; i < 10001; i++) {
if(count[i] != 0) {
for(int j = 0; j < count[i]; j++) {
bw.write(i + "\n");
}
}
}
bw.flush();
bw.close();
}
}
Reference
この問題について(白駿10989:数列3), 我々は、より多くの情報をここで見つけました
https://velog.io/@junza301/백준-10989-수-정렬하기-3
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bf.readLine());
int [] count = new int[10001];
for(int i = 0; i < n; i++) {
count[Integer.parseInt(bf.readLine())]++;
}
for(int i = 0; i < 10001; i++) {
if(count[i] != 0) {
for(int j = 0; j < count[i]; j++) {
bw.write(i + "\n");
}
}
}
bw.flush();
bw.close();
}
}
Reference
この問題について(白駿10989:数列3), 我々は、より多くの情報をここで見つけました https://velog.io/@junza301/백준-10989-수-정렬하기-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol