
사진 출처 : https://www.acmicpc.net/

이번 문제는 ... 멋사 들어오기 전 2~3일 동안 끙끙 앓다 오늘 푸니깐 20분 만에 푼 문제다. 자바에 익숙치 않던 나는 이제서야 list 활용에 눈을 떳다.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Array8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = 10; // 같은 값 카운트 할 변수
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
int num = sc.nextInt();
num %= 42;
list.add(num);
}
for (int i = 0; i < list.size(); i++) {
for (int j = i; j < list.size() ; j++) {
if (i == j) continue;
if (list.get(i) == list.get(j)) {
list.set(j, -1);
}
}
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i) == -1) count --;
}
System.out.println(count);
}
}
Scanner sc = new Scanner(System.in);
int count = 10; // 같은 값 카운트 할 변수
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
int num = sc.nextInt();
num %= 42;
list.add(num);
}
동적 할당이 가능한 List를 선언 후 반복문을 통해 값을 넣어준다.
for (int i = 0; i < list.size(); i++) {
for (int j = i; j < list.size() ; j++) {
if (i == j) continue;
if (list.get(i) == list.get(j)) {
list.set(j, -1);
}
}
}
첫 번째 for문엔 찾을 값 기준을 잡고 두 번째 for문엔 자신을 제외한 다른 값에 같은 값이 들어있는지 검사하는 반복문을 생성했다.
자신과 같은 자리 검색 시 continue
자신과 같은 값을 발견 시 -1로 값 설정
for (int i = 0; i < list.size(); i++) {
if (list.get(i) == -1) count --;
}
System.out.println(count);
마지막 반복문을 돌려 10값을 갖는 count값이 list에 -1 값이 발견된다면 하나 씩 -1 하게 끔 설정해줬다.
