[정렬] 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
개발하는지호