https://www.acmicpc.net/problem/10430

 

10430번: 나머지

첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

www.acmicpc.net


 

백준 온라인 저지(BOJ)의 첫 번째 단계인 "입출력과 사칙연산"의 열 번째 문제이다.

 

문제에서 주어진대로 계산을 한 후 출력만 해주면 되는 문제이다.

 

 

 

 

  • 첫 번째 방법 - Scanner + StringTokenizer
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		
		StringTokenizer st = new StringTokenizer(in.nextLine());
		
		int A = Integer.parseInt(st.nextToken());
		int B = Integer.parseInt(st.nextToken());
		int C = Integer.parseInt(st.nextToken());
		
		System.out.println( (A+B)%C );
		System.out.println( ((A%C) + (B%C))%C );
		
		System.out.println( (A*B)%C );
		System.out.println( ((A%C) * (B%C))%C );
		
 	}
}

Scanner는 BufferedReader에 비해 성능이 떨어지므로 BufferedReader를 사용하는 것을 추천한다.

 

 

 

 

  • 두 번째 방법 - BufferedReader + StringTokenizer
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine());

		int A = Integer.parseInt(st.nextToken());
		int B = Integer.parseInt(st.nextToken());
		int C = Integer.parseInt(st.nextToken());
		
		System.out.println( (A+B)%C );
		System.out.println( ((A%C) + (B%C))%C );
		
		System.out.println( (A*B)%C );
		System.out.println( ((A%C) * (B%C))%C );
		
 	}
}

 

 

 

 

 

  • 세 번째 방법 - BufferedReader + split()
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));
		
		String[] str = br.readLine().split(" ");

		int A = Integer.parseInt(str[0]);
		int B = Integer.parseInt(str[1]);
		int C = Integer.parseInt(str[2]);
		
		System.out.println( (A+B)%C );
		System.out.println( ((A%C) + (B%C))%C );
		
		System.out.println( (A*B)%C );
		System.out.println( ((A%C) * (B%C))%C );
			
 	}
}

원래 StringTokenizer를 선호하지만 split()도 한번 사용해봤다.

 

 

 

 

 


  • 느낀 점

왜 이러한 결과가 나오는지 추가적인 검색을 해봐야겠다.

 

이렇게 첫 번째 단계의 모든 문제풀이를 완료했다.

입력을 받는 방법 2가지, Scanner와 BufferedReader를 이용하는 방법들을 연습할 수 있었고,

출력을 하는 방법 2가지, System.out.println과 StringBuilder를 이용하는 방법들을 연습할 수 있었다.

그 외에 문자열을 나누는 방법(StringTokenizer, split())등을 다루었다.