코딩테스트/백준(JAVA)

백준 코딩테스트 4-8-3052 나머지 코딩 문제 java로 푸는 방법

쏠솔랄라 2023. 4. 6. 20:24

 

 

백준 코딩테스트 단계별로 풀어보기

4단계 1차원 배열 8단계 3052 나머지 문제입니다

 

 

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

 

3052번: 나머지

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

www.acmicpc.net

 

 

https://www.acmicpc.net/step

 

단계별로 풀어보기

단계별은 @jh05013님이 관리하고 계십니다. 단계제목설명정보총 문제내가 맞은 문제1입출력과 사칙연산입력, 출력과 사칙연산을 연습해 봅시다. Hello World!132조건문if 등의 조건문을 사용해 봅시다

www.acmicpc.net

 

 


 

 

 

문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다.
예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다.
그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

입력
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.

출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.

 

 

정답

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in);

int arr [] = new int [10];

int cnt=0;

 

for (int i=0; i<arr.length; i++) {

arr[i] = sc.nextInt()%42;

}

 

for (int i=0; i<arr.length; i++) {

 

int tmp = 0;

for (int j=i+1; j<arr.length; j++) {

if (arr[i]==arr[j]) {

tmp++;

}

}

if (tmp==0) {

cnt++;

}

}

 

System.out.println(cnt);

}

}

 

=>

10개짜리 배열에 10개의 숫자를 42로 나눈 나머지를 담고

임의의 변수 tmp를 사용해 배열의 중복값을 거르고

중복되지 않는 경우에만 cnt를 증가시킨다

 

 

<또다른 풀이>

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

public class Main {

 

public static void main(String[] args) throws IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

 

int arr [] = new int [10];

int cnt=0;

 

for (int i=0; i<arr.length; i++) {

arr[i]=Integer.parseInt(br.readLine())%42;

}

 

for (int i=0; i<arr.length; i++) {

 

int tmp=0;

for (int j=i+1; j<arr.length; j++) {

if (arr[i]==arr[j]) {

tmp=1; }

}

if (tmp==0) {

cnt++;

}

}

 

System.out.println(cnt);

}

}

 

=> 

 동일한 방법을 bufferedreader를 사용해서 해결한 풀이

 

위가 bufferedreader 

아래가 scanner

메모리 차이가 커서 bufferedreader 꾸준히 사용할 수 있도록 연습해야겠다

 

 


 


1-1-2557 Hello World https://developernew.tistory.com/41 <- 백준 답지 제출 방법
1-2-1000 A+B https://developernew.tistory.com/42
1-3-1001 A-B https://developernew.tistory.com/43
1-4-10998 AXB https://developernew.tistory.com/44
1-5-1008 A/B https://developernew.tistory.com/45
1-6-10869 사칙연산 https://developernew.tistory.com/46
1-7-10926 ??! https://developernew.tistory.com/47
1-8-18108 1998년생인 내가 태국에서는 2541년생?! https://developernew.tistory.com/48
1-9-10430 나머지 https://developernew.tistory.com/49
1-10-2588 곱셈 https://developernew.tistory.com/50
1-11-11382 꼬마 정민 https://developernew.tistory.com/51
1-12-10171 고양이 https://developernew.tistory.com/52
1-13-10172 개 https://developernew.tistory.com/53

2-1-1330 두 수 비교하기 https://developernew.tistory.com/54
2-2-9498 시험 성적 https://developernew.tistory.com/55
2-3-2753 윤년 https://developernew.tistory.com/56
2-4-14681 사분면 고르기 https://developernew.tistory.com/61
2-5-2884 알람 시계 https://developernew.tistory.com/68
2-6-2525 오븐 시계 https://developernew.tistory.com/69
2-7-2480 주사위 https://developernew.tistory.com/72

3-1-2739 구구단 https://developernew.tistory.com/73
3-2-10950 A+B - 3 https://developernew.tistory.com/75
3-3-8393 합 https://developernew.tistory.com/77
3-4-25304 영수증 https://developernew.tistory.com/79
3-5-25314 코딩은 체육과목 입니다 https://developernew.tistory.com/82
3-6-15552 빠른 A+B https://developernew.tistory.com/83
3-7-11021 A+B -7 https://developernew.tistory.com/85
3-8-11022 A+B -8 https://developernew.tistory.com/86
3-9-2438 별 찍기 -1 https://developernew.tistory.com/87
3-10-2439 별 찍기 -2 https://developernew.tistory.com/89
3-11-10952 A+B -5 https://developernew.tistory.com/90
3-12-10951 A+B -4 https://developernew.tistory.com/91

4-1-10807 개수 세기 https://developernew.tistory.com/97
4-2-10871 X보다 작은 수 https://developernew.tistory.com/100
4-3-10818 최소, 최대 https://developernew.tistory.com/101
4-4-2562 최대값 https://developernew.tistory.com/104

4-5-10810 공 넣기 https://developernew.tistory.com/105

4-6-10813 공 바꾸기 https://developernew.tistory.com/116

4-7-55974 과제 안 내신 분...? https://developernew.tistory.com/121