이번 문제도 간단하지만, 아마도 다들 런타임 에러때문에 곤란을 겪고 있지 않을까? 하는 생각이 들었다. 아마도 다들 기존과 같이 이런식으로 제출했다가 런타임 에러가 발생할 것이다. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true) { int a = sc.nextInt(), b = sc.nextInt(); System.out.println(a + b); } } NoSuchElement를 검색해봤더니 아래의 사유로 발생한다고 한다, 이럴 때 사용할 수 있는 것이 hasNextInt( ) 메서드이다. 간단하게 hasNextInt(..
이번 문제는 매우 간단하다. 이번엔 테스트 케이스가 따로 주어지지 않고, A와 B의 값 모두 0일 때 break하면 되니 아래와 같이 하였다. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); for(; ;) { int a = sc.nextInt(), b = sc.nextInt(); if(a == 0 && b == 0) break; System.out.println(a + b); } } }
이번 문제는 매우 간단하다. 아래는 내가 작성한 코드이다. import java.util.*; public class Step3_10 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 줄 수 for(int i = 1; i
이번 문제는 Buffer 기능을 사용한 것과 Scanner만 사용한 것 모두 올려보겠다. 우선 첫 번째다. import java.util.*; import java.io.*; public class Step3_9 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); for(int i = 1; i
이번 문제는 간단하므로 설명은 생략하겠다. import java.util.*; public class Step3_8 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for(int i = 0; i < N; i++) { int A = sc.nextInt(); int B = sc.nextInt(); System.out.printf("Case #%d: %d + %d = %d%n",i+1, A, B, A + B); } sc.close(); } }
이번 문제는 이전에서 처음 다뤘던 입출력 스트림과 Scanner 둘의 속도 차이를 간단하게 비교해 볼 것이다. 첫 번째는 버퍼 기능을 이용한 코드다. import java.io.*; import java.util.*; public class Step3_7 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int T = Integer.parseInt(br.readLine()); fo..
우선 나는 이번 포스팅에서 입출력이 빠른 버퍼 기능에 대해 약간은 자세하게 풀어볼 생각이므로, 긴 글을 싫어하시거나 프로그래밍을 공부한 지 얼마 안 되신 분이시라면 이번 글은 나가시는 걸 추천한다. 이번 문제를 시간 초과 없이 풀기 위해서 입출력 스트림에 대해 알아보도록 하자. 우선 알다시피 기존의 Scanner 클래스를 이용하여 문제를 풀면 다음과 같이 시간 초과가 발생할 것이다. 그럼 바로 BufferedReader를 이용한 코드를 올리겠다. import java.io.*; import java.util.StringTokenizer; public class Step3_6 { public static void main(String[] args) throws IOException { BufferedRea..
이번 문제는 혜정이가 생각하는 정수형의 이름을 구하면 된다. 나는 이 문제를 처음 보았을 때, 저장 공간 / 4의 몫만큼 Long을 붙이고 마지막에 "int"를 붙이면 되지 않을까? 라는 생각이 들었다. 그래서 아래와 같이 간단히 코드를 짜보았다. import java.util.*; public class Step3_5 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); String name = ""; for(int i = 1; i
이번 문제는 계산이 올바르게 됐는지 확인하는 문제이다. True일 땐 Yes, 아닐 땐 No를 출력하자 X의 값이 a * b의 합과 같은지 확인을 하면 되고, 반복문은 N 만큼 돌리면 된다. import java.util.*; public class Step3_4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int X = sc.nextInt(), N = sc.nextInt(); int sum = 0; for(int i = 0; i < N; i++) { int a = sc.nextInt(), b = sc.nextInt(); sum += a * b; } System.out.println((X == sum) ? ..
이번 문제는 n의 합을 누적시킬 변수를 하나 만들어주면 간단하다. import java.util.*; public class Step3_3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int sum = 0; for(int i = 1; i