白駿2884号:目覚まし時計(Java/Kotlin)
21274 ワード
質問する
https://www.acmicpc.net/problem/2884
に道を教えるで入力された分が45未満の場合、時間-1、分60-(45-入力分)が計算されます. に入力された分の数が45以上の場合、入力された分の数は-45です. 詩が0より小さい場合は、詩を23に修正します. BufferedReaderを入力して演算する方法があります. Scannerを入力して演算する方法がある.
BufferedReaderとして入力して演算するコード
Java BufferedReaderで文字列を受信する方法で、readline()を表します. readline()は1行をすべて読み込むため、入力した文字列をスペースで区切る必要があります. オブジェクトを作成する場合は、StringTokenizer(文字列、区切り記号)クラスを使用して区切ります. で区切られた変数を抽出する場合、nextToken()を使用して文字列を順次返します. で返される文字列は、返されると同時にオブジェクトから消えます. BufferedReaderとは何ですか?私たちはパソコンから文章を読むまで、バイトタイプにデータを転送して文字(Char)に変換するプロセスがあります. 以降、それらの文字はまた再配列生成(文字列)され、私たちが読む文章(String)になります. Scannerは、文字列を返すまで多くの正規表現をチェックする必要があるため、速度が遅い. BufferedReaderは、バッファを介して入力された文字を積み重ね、文字列のように一度に送信するため、配列を生成することなくStringで受信でき、スキャナよりも高速です. 整理する
BufferedReaderはScannerのように配列を作成するのではなく、文字列を直接取得するので、より高速です.
スキャンコード
Java
[伯俊]2884号:目覚まし時計-JAVA[Java]
[伯俊]1000号:A+B-JAVA[Java]
JAVA[Java]-入力[スキャナ、InputStream、BufferedReader]を開く
https://www.acmicpc.net/problem/2884
に道を教える
Java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str," ");
int H = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
if(M < 45) {
H--;
M = 60 - (45 - M);
if(H < 0) {
H = 23;
}
System.out.println(H + " " + M);
}
else {
System.out.println(H + " " + (M - 45));
}
}
}
Kotlinimport java.io.BufferedReader
import java.io.InputStreamReader
import java.util.StringTokenizer
fun main() = with(System.`in`.bufferedReader()){
val str = readLine()
val token = StringTokenizer(str," ")
var H = token.nextToken().toInt()
var M = token.nextToken().toInt()
if (M<45){
H--
M = 60-(45-M)
if(H < 0){
H = 23
}
println("${H} ${M}")
} else {
println("${H} ${M-45}")
}
}
に答えるBufferedReaderはScannerのように配列を作成するのではなく、文字列を直接取得するので、より高速です.
スキャンコード
Java
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();
int M = sc.nextInt();
sc.close();
if(M<45){
H--;
M= 60-(45-M);
if(H<0){
H=23;
}
System.out.println(H + " " + M);
}
else {
System.out.println(H + " " + (M-45));
}
}
}
Kotlinimport java.util.Scanner
fun main() = with(Scanner(System.`in`)){
var H = nextInt()
var M = nextInt()
if (M<45){
H--
M = 60-(45-M)
if(H < 0){
H = 23
}
println("${H} ${M}")
} else {
println("${H} ${M-45}")
}
}
コメントとソース[伯俊]2884号:目覚まし時計-JAVA[Java]
[伯俊]1000号:A+B-JAVA[Java]
JAVA[Java]-入力[スキャナ、InputStream、BufferedReader]を開く
Reference
この問題について(白駿2884号:目覚まし時計(Java/Kotlin)), 我々は、より多くの情報をここで見つけました https://velog.io/@chloedewyes/백준-2884번-알람-시계-JavaKotlinテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol