728x90
더보기
망한코드
28개의 값 중 1이 있는지 , 2가 있는지, 3이 있는지 ... 반복하며 검사하는 알고리즘을 작성하였으나..
무언가 잘못된 듯 함.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[28];
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<28;i++) {
arr[i] = sc.nextInt();
}
for(int i=1;i<=30;i++) {
for(int k=0;k<28;k++) {
if(i==arr[k]) {
break;
}
else {
list.add(i);
}
}
}
if(list.get(0)>list.get(1)) {
System.out.println(list.get(1)+"\n"+list.get(0));
}
else {
System.out.println(list.get(0)+"\n"+list.get(1));
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] student = new int[31];
for(int i=1; i<29; i++) {
int success = sc.nextInt();
student[success] = 1;
}
for(int i=1; i<student.length; i++) {
if(student[i]!=1)
System.out.println(i);
}
sc.close();
}
}
있는지 없는지, 맞는지 아닌지 이분법적 사고를 요하는 문제는
Boolean형으로 풀이하는 알고리즘을 생각해 볼 수 있다.
28번 차례대로 입력을 받고 입력받은 숫자를 인덱스로 설정하여 1을 저장한다.
만약 2번이 과제를 제출하지 않았다면 인덱스2번에는 쓰레기 값이 들어있게 되므로
값이 1이 아닌 인덱스는 과제를 제출하지 않은 번호가 된다.
728x90
'백준 단계별' 카테고리의 다른 글
[Java] 백준 1546: 평균 (0) | 2023.01.10 |
---|---|
[Java] 백준 3052: 나머지 (0) | 2023.01.10 |
[Java] 백준 2562: 최댓값 (0) | 2023.01.05 |
[Java] 백준 10871: X보다 작은 수 (0) | 2023.01.05 |
[Java] 백준 10807: 개수 세기 (0) | 2023.01.05 |