Post

[백준] 10430번 - 나머지 [Java][C++]

[백준] 10430번 - 나머지 [Java][C++]

문제 링크


1. 문제 풀이

두 정수 $A$, $B$ 에 대해 네 가지 연산 결과를 출력하면 되는 문제다.

1번 연산에 대해 2번 연산은 덧셈에 대한 분배를 적용하고, 3번 연산에 대해 4번 연산은 곱셈에 대한 분배를 적용한 꼴인데, 나머지(mod) 연산의 경우 덧셈과 곱셈에 대한 분배법칙이 성립해 1번 연산과 2번 연산이 동일하고 3번 연산과 4번 연산이 동일한 결과가 나올 것임을 예상해 볼 수 있다.


2. 코드

1. 구현 [Java]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.io.*;
import java.util.*;

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);
    }
}

2. 구현 [C++]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int a, b, c;
    cin >> a >> b >> c;
    cout << (a + b) % c << '\n';
    cout << ((a % c) + (b % c)) % c << '\n';
    cout << (a * b) % c << '\n';
    cout << ((a % c) * (b % c)) % c << '\n';
}

3. 풀이 정보

1. 구현 [Java]

언어시간메모리코드 길이
Java 11100 ms14240 KB618 B

2. 구현 [C++]

언어시간메모리코드 길이
C++ 170 ms2020 KB315 B

This post is licensed under CC BY 4.0 by the author.