반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1172 : 세 수 정렬하기 (자바, JAVA)입니다.
intro
Question
문제 설명
입력
세 정수가 입력된다.
입력범위:
낮은 숫자 부터 출력한다.
출력
출생년도 뒤의 두자리와 연도정보(1이면 1900년대, 3이면 2000년대)를 출력한다.
(단, 출생년도 뒤 2자리가 10보다 작을 경우10의자리에 0은 붙이지 않고 출력한다.)
학번을 붙여서 출력한다. 번호가 10번 미만일때는 0을 붙여 출력한다.
예시
- 입력 : 8 7 6
- 출력 : 6 7 8
Solution (풀이)
- 풀이 1 : 메모리 11276, 시간 115
정말 비효율적이지만 사실 이렇게 노가다성 코드가 확실할 때에도 분명히 있다. (하지만 여기서는 아니었다.. ^^)
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 3개의 숫자를 입력 받았다.
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
if (a>b) {
if (b>c) {
bw.append(String.valueOf(c)).append(String.valueOf(" "+b)).append(String.valueOf(" "+a));
} else {
if (a>c) {
bw.append(String.valueOf(b)).append(String.valueOf(" "+c)).append(String.valueOf(" "+a));
} else {
bw.append(String.valueOf(b)).append(String.valueOf(" "+a)).append(String.valueOf(" "+c));
}
}
} else {
if (a>c) {
bw.append(String.valueOf(c)).append(String.valueOf(" "+a)).append(String.valueOf(" "+b));
} else {
if (b>c) {
bw.append(String.valueOf(a)).append(String.valueOf(" "+c)).append(String.valueOf(" "+b));
} else {
bw.append(String.valueOf(a)).append(String.valueOf(" "+b)).append(String.valueOf(" "+c));
}
}
}
bw.flush();
br.close();
bw.close();
}
}
- 풀이 2 : 메모리 11208, 시간 68
public class Answer2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
StringBuilder sb = new StringBuilder();
// 3수를 배열에 저장
int[] number = new int[3];
for (int i=0; i<3; i++) {
// 배열에 인덱스 증가에 따라 저장
number[i] = Integer.parseInt(st.nextToken());
}
// 배열 정렬
Arrays.sort(number);
// 향상 for문
for (int i : number) {
sb.append(String.valueOf(i)+" ");
}
System.out.print(sb);
}
}
Arrays.sort()메소드를 통해서 오름차순으로 정렬할 수 있다.
만약 String타입의 배열을 Arrays.sort()를 통하여 정렬을 하게 되면, 각 인덱스의 문자 길이로 비교하기 때문에 주의하자.
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1174 : 30분 전 (if는 아직...) (0) | 2022.05.09 |
---|---|
[CodeUp_Java] Q1173 : 30분 (0) | 2022.05.03 |
[CodeUp_Java] Q1171 : 당신의 학번은? 2 (0) | 2022.05.03 |
[CodeUp_Java] Q1170 : 당신의 학번은? 1 (0) | 2022.05.03 |
[CodeUp_Java] Q1169 : 나이 계산 2 (0) | 2022.05.03 |