[백준] n.3052 - 서로 다른 나머지 개수 구하기

    SMALL

    1. 문제

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

     

    3052번: 나머지

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

    www.acmicpc.net

    2. 사용 개념

    - Scanner

    - 반복문 (for문), 이중 반복문

    - boolean 변수, int 변수

    - 1차원 배열

     

    3. 나의 풀이 (*은 잘 안풀린 부분)

    import java.io.*;
    import java.util.*;
    
    public class Main {
    
      public static void main(String[] args) {
    
        Scanner s = new Scanner(System.in);
    
    
        //*boolean 이용해서 동일여부 판단!!*
        
        int n, m, i, j, cnt;
        // n: 자연수, m: 나머지
        // cnt: 서로 다른 나머지의 수
    
        boolean bl; // *배열 값 동일 여부 판단 변수
        cnt = 0;
    
        int[] arr = new int[10];
        // 나머지 저장소
    
        for (i = 0; i < arr.length; i++) {
          n = s.nextInt();
          m = n % 42;
          arr[i] = m;
        }
    
        for (i = 0; i < arr.length; i++) {
          bl = false; // * 기본값 초기화!
          for (j=i+1; j<arr.length; j++){
            if (arr[i] == arr[j]) {
              bl = true;
              break;
            }
          }
          if (bl==false){
            cnt++;
          }
        }
    
        System.out.println(cnt);
    
      }
    
    }

     

    4. 짚고 넘어가기!

    - boolean 변수를 통해 T/F를 판단해야 함!

    - boolean 변수를 for문에서 사용할 시, for문이 돌 때 마다 false로 초기화!

    - bl이 true인 경우, break를 통해 상위 for문 빠져나오기!

    - bl이 false인 경우, cnt 값 증가! 

    728x90

    댓글