반응형
시간초과 된 소스입니다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=Integer.parseInt(scan.nextLine());
String strArray[]=scan.nextLine().split(" ");
int m=Integer.parseInt(scan.nextLine());
String searchArray[]=scan.nextLine().split(" ");
int [] result=new int [m];
for(int i=0;i<searchArray.length;i++){
result[i]=0;
for(int j=0;j<strArray.length;j++){
if(Integer.parseInt(strArray[j])==Integer.parseInt(searchArray[i])){
result[i]=1;
break;
}
}
}
for (int i : result) {
System.out.println(i);
}
}
}
문제를 잘 맞춘 소스 입니다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=Integer.parseInt(scan.nextLine());
//자바 더블 콜론 문법에 대해 공부할것
int [] intArray=Arrays.stream(scan.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int m=Integer.parseInt(scan.nextLine());
int [] searchArray=Arrays.stream(scan.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
//오름 차순 정렬
Arrays.sort(intArray);
//이진검색 하기
for(int i:searchArray) {
if(Arrays.binarySearch(intArray,i)>=0){
System.out.println(1);
}else{
System.out.println(0);
}
}
}
}
이진검색을 이용하여 문제를 풀려고 하였으며 잘하시는분들 소스를 보니 HashSet을 이용하여 풀어서 저도 차후에 보강해보겠습니다.
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 퀵 정렬 Java (0) | 2020.10.26 |
---|---|
[알고리즘] 백준 2750번 수 찾기 Java (0) | 2020.08.28 |
[알고리즘] 백준 2884번 알람 시계 Java (0) | 2020.08.18 |
[알고리즘] 백준 14681번 사분면 고르기 Java (0) | 2020.08.18 |
[알고리즘] 백준 2753번 윤년 Java (0) | 2020.06.29 |
댓글