개발하는지호

[정렬] 5. 중복 확인

by 개발하는지호

 

<<풀이>>

 

-나의 풀이-

 

일반 적으로 중복확인은 이중 for문이 기본이기 때문에 이중 for문을 사용했다

 

다만 조심해야할 부분은 이중 for문 안에 for문은 바깥의 파라미터의 영향을 받아야 한다.

 

바깥 for문은 int i = 0

안쪽 for문은 int j = i + 1 

 

로 시작한다.

import java.util.Scanner;
class Main {
private char solution(int n, int[] arr) {
for(int i = 0; i < n - 1; i++) {
for(int j = i + 1; j < n; j++) {
if(arr[i] == arr[j]) return 'D';
}
}
return 'U';
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
System.out.println(T.solution(n, arr));
}
}

 

-강사님 풀이-

 

강사님은 Arrays.sort()를 활용해서 풀었다. 미리 정렬을 해놓고 for문을 돌리게 도면 굳이 이중 for문을 사용하지 않아도 된다.

그리고 아무리 스펠링 하나인 문자여도 "" 안에 들어오면 String으로 형변환이 된다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
class Main {
private String solution(int n, int[] arr) {
String answer = "U";
Arrays.sort(arr);
for(int i = 0; i < n - 1; i++) {
if(arr[i] == arr[i + 1]) return "D";
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
System.out.println(T.solution(n, arr));
}
}
블로그의 프로필 사진

블로그의 정보

DevSecOps

개발하는지호

활동하기