본문 바로가기
알고리즘 문제연습/기초 알고리즘

[021] 중복된 수 제거

by 은z 2021. 6. 8.

문제

- 1~100까지의 숫자를 랜덤으로 입력하고 중복된 수는 제거하여 출력하세요.

 

입력 : 1 2 3 1 1 2 3 4 5 5

정답: 1 2 3 4 5

 

보완할 점

 

 

소스코드

import java.util.Scanner;

public class Algorithm21 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int[] arr = new int[10];
		System.out.println("1~100까지의 숫자를 입력하세요");
		
		//배열에 숫자 담기
		for(int i = 0; i < arr.length; i++) {
			System.out.print((i + 1) + "번째 숫자 >> ");
			arr[i] = sc.nextInt();
		}
		
		
		int[] num = new int[100];
		//하나씩 꺼내서 새로운 배열에 담기 (ex. 8이 나오면 num[7]에 담기
		for(int i = 0; i < arr.length-1; i++) {
			for(int j = 1; j < arr.length; j++) {
				if(arr[i] != arr[j]) { //같지 않을 때만 들어와라
					num[arr[i]-1] = arr[i]; //num[99] = 100 예외발생 막기 위해
					num[arr[j]-1] = arr[j]; 
				}else if(arr[i] == arr[j]) { //같을 때는 여기로
					num[arr[i]-1] = arr[i];
				}
			}
		}
		
		//출력하기 (0이 아닌 것만)
		System.out.print("정답: ");
		for(int i = 0; i < num.length; i++) {
			if(num[i] != 0) {
				System.out.print(num[i]+ " ");
			}
		}
	}
}

댓글