Algorithm/Java
[백준] n.3052 - 서로 다른 나머지 개수 구하기
보라해바라기
2023. 5. 12. 10:20
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