[백준] 3052 - 나머지 문제풀이 JAVA 자바 반복문 for, 배열

2023. 9. 7. 16:55·Etc/코딩테스트

 

 - 반복문 for와 배열을 이용하는 문제이다.

처음에 두번째 예제까지 출력값이 같아서 맞는 코드라고 생각했는데 세번째 예제를 입력하니까 출력값이 다르게 떠서 애먹었던 문제 😅

 

10개의 수를 받고 42로 나눈 나머지 값을 배열에 담아 서로 다른 수의 개수를 출력하는 문제이다

 

 

[제출답안]

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int arr[] = new int[10];
		int count = 0; //서로 다른 수가 몇 개인지 담는 변수
		for(int i = 0; i<arr.length; i++) {
			int num = s.nextInt();
			arr[i] = num%42;			
		}
		for(int i=0; i<arr.length; i++) {
			int temp = 0;
			for(int j=i+1; j<arr.length; j++) {
				if(arr[i]==arr[j])temp++;
			}
			if(temp==0) {
				count++;
			}
		}
		s.close();
		System.out.println(count);
    }		
  }

[풀이]

1. 값을 입력받는 스캐너 생성, import

2. 10개의 수를 넣을 배열 arr생성

3. for문으로 길이가 arr배열에 입력받은 수를 42로 나눈 나머지를 10번 담아준다.

4. 해당 배열에 서로 다른 수가 몇개인지 판별하는 for반복문 작성

4-1) for문 안에 temp를 반복 생성하여 0~9까지 아래 for문을 통해 같은 수가 있을 경우 ++로 수를 증가시켜준다

5) for문 안에 for문을 담아 arr배열의 인덱스 값과 그 다음 인덱스 값을 비교해 중복을 확인

6) for문을 돌아 temp값이 증가되면 해당 숫자가 중복으로 사용되었다는 뜻

7) temp가 0일때만 count를 증가시켜 서로 다른 수의 개수를 확인할 수 있다.

 

 

예제) arr의 나머지 값이 [0,1,1,2,2,3,3,4,5,6] 인 경우

i가 0일 때
arr[0]==arr[1~9] 비교 -> 0은 한번밖에 없기 때문에 temp값이 증가하지 않고 0이 됨 -> count++

i가 1일 때

arr[1]==arr[2~9] 비교 -> 1이 뒤에 나오기 때문에 temp값 증가하고 count값은 변하지 않음

i가 2일 때

arr[2]==arr[3~9] 비교 -> 2기준으로 3번째 부터는 1이 나오지 않기 때문에 temp값 증가 count++
...
arr[8]==arr[9] 비교-> count++

결과 = 7

** 이중 for문으로 사용한 구문으로 해당 i번의 배열을 i+1이후의 값과 모두 비교한 후 temp값을 증가시키므로
여러개의 동일 값이 존재하는 경우 마지막에 위치한 값만 count해서 정확한 개수를 구할 수 있다

이클립스 콘솔창에 예제 값 입력해본 결과

 

[백준 실행 결과]

- 반복문을 이중으로 쓴 적이 별로 없어서 어렵다고 느낀 문제였다. 

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

[백준] 1546번 - 평균 문제풀이 JAVA 자바 for문, 배열  (0) 2023.09.08
[백준] 10811번 - 바구니 뒤집기 문제해설 자바 JAVA  (0) 2023.09.08
[백준] 2438번 - 별찍기 문제풀이 자바 JAVA for반복문 사용  (0) 2023.09.04
[백준] 15552번 - 빠른 A+B 문제풀이 자바 JAVA - BufferedReader 런타임에러  (0) 2023.09.03
[백준] - 25314번 코딩은 체육과목 입니다 풀이 JAVA 자바 for문  (0) 2023.09.03
'Etc/코딩테스트' 카테고리의 다른 글
  • [백준] 1546번 - 평균 문제풀이 JAVA 자바 for문, 배열
  • [백준] 10811번 - 바구니 뒤집기 문제해설 자바 JAVA
  • [백준] 2438번 - 별찍기 문제풀이 자바 JAVA for반복문 사용
  • [백준] 15552번 - 빠른 A+B 문제풀이 자바 JAVA - BufferedReader 런타임에러
시녜's
시녜's
성장중인 새싹 개발자 🌱
  • 시녜's
    개발기록
    시녜's
  • 전체
    오늘
    어제
    • 분류 전체보기
      • FE
        • React
        • javascript(jQuery)
        • HTML & CSS
      • BE
        • Java [Servlet , Spring]
        • C & C++
        • Node.js
        • node.js
        • SQL (Oracle, mysql)
      • CS
        • 프로그래밍 이론(정보처리기사)
      • Etc
        • 코딩 챌린지
        • 개발 성장 일지
        • 코딩테스트
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래밍
    백준문제풀이
    자바배열
    javascript
    자바문자열
    코딩테스트입문
    jquery
    CharAt함수
    코딩입문
    코테기초
    백준단계별문제
    자바조건문
    제이쿼리
    React
    백준코딩테스트
    jsp
    mysql
    코딩기초
    코테
    자바반복문
    백준
    백준브론즈
    코딩테스트
    리액트
    Java
    html
    자바
    자바스크립트
    자바기초
    스프링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
시녜's
[백준] 3052 - 나머지 문제풀이 JAVA 자바 반복문 for, 배열
상단으로

티스토리툴바