-
[BaekJoon Java] 나머지(3052)Coding Test/BaekJoon 2020. 12. 26. 19:05
- 문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
- 예제 입출력
- 풀이
package step.array.one_dimensional; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. * 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. * @author imj10 * */ public class Balance { public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Integer> list = new ArrayList<Integer>(); int count = 0; for ( int i=0; i <10; i++ ) { int input = sc.nextInt(); if ( !list.contains(input%42) ) { list.add(input%42); count++; } } System.out.println(count); } }
- 결과
- 추가설명
ArrayList를 하나 생성했다.
list: 42로 나눈 나머지를 넣어줄 list이다.
contains를 사용하여 list에 나머지가 존재하지 않을 경우에만 list에 담아줫다.
ArrayList.contains(Object o): o가 list에 있을 경우 true 반환
그럼 자연스럽게 중복이 제거되어 다른 나머지 값들만 list에 담긴다.
- 풀이2
package step.array.one_dimensional; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. * 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. * @author imj10 * */ public class Balance { public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Integer> list = new ArrayList<Integer>(); for ( int i=0; i <10; i++ ) { int input = sc.nextInt(); if ( !list.contains(input%42) ) { list.add(input%42); } } System.out.println(list.size()); } }
- 결과2
- 추가설명2
블로그에 글을 쓰다 생각났다. 변수 count를 사용하지 않고
list.size();를 사용했다.
ArrayList.size(): arrayList의 갯수를 알려주는 메소드
불필요한 변수를 지워 코드길이도 줄고 시간도 줄고 메모리도 줄었다ㅎㅎ :)
'Coding Test > BaekJoon' 카테고리의 다른 글
[BaekJoon Java] 한수(1065) (0) 2021.03.14 [BaekJoon Java] 평균(1546) (0) 2020.12.26 [BaekJoon Java] 숫자의 개수(2577) (0) 2020.12.26 [BaekJoon Java] 최댓값(2562), Array와 ArrayList 차이점 (0) 2020.12.26 [BaekJoon Java] X보다 작은 수(10871) (0) 2020.12.25