코딩테스트/백준

백준 3052번: 나머지 [Java]

블로그 주인장 2023. 8. 17.

🎁 링크

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

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

🎁 문제 설명

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오

🎁 입출력 예시

🎁 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.StringTokenizer;

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

        for (int i = 0; i < arr.length; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int A = Integer.parseInt(st.nextToken());

            arr[i] = A % 42;
        }

        //배열 이용
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            boolean istrue = false;
            for (int j = i + 1; j < arr.length; j++) {
                if(arr[i] == arr[j]){
                    istrue = true;
                    break;
                }
            }
            if(istrue == false)
            {
                count++;
            }
        }
        System.out.println(count);
    }
}

🎁 코드 설명

1) BufferedReader를 통해 입력 값을 받는다

2) arr[i]에 input을 42로 나눈 나머지를 저장

3) for문으로 arr[i]의 값을 서로 비교하여 같은 수인지 찾기

4) boolean 플래그를 이용하여 값이 동일한 경우 true로 해당 반복문을 빠져나온다

5) istrue = true 인 경우 count++ 해준다

반응형

'코딩테스트 > 백준' 카테고리의 다른 글

백준 10773번: 제로 [Java]  (0) 2023.08.24
백준 1152번: 단어의 개수 [Java]  (0) 2023.08.15
백준 2830번 : 행성 X3 [Java]  (0) 2023.08.14

댓글