반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1095 : [기초-종합] 이상한 출석 번호 부르기3 (자바, JAVA)입니다.
intro
Question
문제 설명
입력
번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다.
n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.
출력
출석을 부른 번호 중에 가장 빠른 번호를 1개만 출력한다.
예시
- 입력 :
10
10 4 2 3 6 6 7 9 8 5 - 출력 :
2
Solution (풀이)
- 풀이 1 : 메모리 31520, 시간 240
public class Answer1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[sc.nextInt()]; // 총 출석을 부를 숫자만큼 배열 길이 선언
for (int i=0; i<a.length; i++) {
a[i] = sc.nextInt(); // 순차적으로 출석 부른 숫자를 배열에 저장
}
Arrays.sort(a); // 기본타입 배열 오른차순 정렬
System.out.print(a[0]); // 정렬 후 첫번째 index 값 출력
sc.close();
}
}
- 풀이 2 : 메모리 12688, 시간 76
public class Answer2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 총 출석을 부를 숫자 변수에 저장
int count = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int minNumber = 23; // 출석 부를수 있는 숫자중 가장 큰 수
for (int i=0; i<count; i++) { // 출석 부를 횟수만큼
int number = Integer.parseInt(st.nextToken());
if (minNumber > number) { // 출석 숫자가 minNumber보다 낮으면
minNumber = number; // minNumber에 저장
}
}
System.out.println(minNumber);
}
}
- 1번 풀이는 출석을 부르는 번호를 배열에 다 저장을 했다가, 나중에 판별을 하는 것이다.
- 2번 풀이는 굳이 배열을 사용하지 않고, 부른 숫자 중에
가장 낮은 숫자
만 기억하면 되는 것이다.
Ranking(순위)
- 주석이 많아서 코드 길이가 긴 것으로 나온것은 알지만.. 다른분들은 어떻게 저렇게 빠르게 풀었는지 ㅠㅠ 혹시 이 글을 보시는 중에 더 나은 코드를 아시는분은 연락주시면 감사하겠습니다! :)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1097 : [기초-2차원배열] 바둑알 십자 뒤집기 (0) | 2022.04.27 |
---|---|
[CodeUp_Java] Q1096 : [기초-2차원배열] 바둑판에 흰 돌 놓기 (0) | 2022.04.27 |
[CodeUp_Java] Q1094 : [기초-종합] 이상한 출석 번호 부르기2 (0) | 2022.04.18 |
[CodeUp_Java] Q1093 : [기초-종합] 이상한 출석 번호 부르기1 (0) | 2022.04.18 |
[CodeUp_Java] Q1092 : [기초-종합] 함께 문제 푸는 날 (0) | 2022.04.18 |