문제
(A+B)% C는 ((A% C) + (B% C))% C와 같을까?
(A×B)% C는 ((A% C) × (B%C))%C 와 같을까?
세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.
입력 조건
첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
출력 조건
첫째 줄에 (A+B)% C, 둘째 줄에 ((A%C) + (B% C))% C, 셋째 줄에 (A×B)% C, 넷째 줄에 ((A% C)× (B% C))% C를 출력한다.
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int A = scanner.nextInt();
int B = scanner.nextInt();
int C = scanner.nextInt();
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);
}
}
늘 그래왔듯... 혹시 하는 마음에 제일 간단하게 작성해 보았다.
처음에 문제를 보았을 때 사실 지레 겁을 먹었다 수식이 꽤 있고 저걸 어떻게 해야 하나 했는데 입력 조건이 꽤나 간결해서 혹시 했다.
일단 intelliJ에선 잘 된다...
그런데 분명... (2 ≤ A, B, C ≤ 10000) 이 조건이 걸려있었는데 왜 통과가 되는 걸까?
이유는 모르지만 그래도 넣어는 보고 끝내는 게 맞겠지?
(2 ≤ A, B, C ≤ 10000)
if (A < 2 || A > 10000 || B < 2 || B > 10000 || C < 2 || C > 10000) {
System.out.println("입력값이 유효하지 않습니다. 2 이상 10000 이하의 숫자를 입력해주세요.");
return;
}
|| 연산자를 통해서 추가해 주면 손쉽게? (겁나 길다.) 추가해 줄 수 있었다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int A = scanner.nextInt();
int B = scanner.nextInt();
int C = scanner.nextInt();
if (A < 2 || A > 10000 || B < 2 || B > 10000 || C < 2 || C > 10000) {
System.out.println("입력값이 유효하지 않습니다. 2 이상 10000 이하의 숫자를 입력해주세요.");
return;
}
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);
}
}
출력도 잘된다. 오래간만에 오류 없이 한 번에 간 느낌이다.
혹시 몰라서 백준에 제출할 때는 이 부분을 지우고 제출했다. (혹시 모를 컴파일 에러를 방지하기 위해서...)
System.out.println("입력값이 유효하지 않습니다. 2 이상 10000 이하의 숫자를 입력해주세요.");
끝...!
정리
뭔가 거창하게 문제에 나와있으면 지레 겁을 먹게 되는데 막상 해보니깐 음? 설마? 이렇게 해결되는 경우도 종종 있으니 차분히 요구 조건에 맞춰서 풀어볼 수 있도록 하는 게 좋을 것 같다.
'Knowledge > Algorithm' 카테고리의 다른 글
[10926/JAVA] ??! (0) | 2023.12.16 |
---|---|
[11382/JAVA] 꼬마 정민 (0) | 2023.12.16 |
[1008/JAVA] A/B (0) | 2023.12.13 |
[10998/JAVA] A×B (0) | 2023.12.13 |
[1001/JAVA] A-B (0) | 2023.12.12 |
쓰임 있는 사람이 되기 위해 노력 중입니다.