1. 문제
세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
2.
코드 1
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] num = new int[3];
int temp;
for(int i=0;i<3;i++){
num[i]=sc.nextInt();
}
for(int i=0;i<3;i++){
for(int j = i+1;j<3;j++){
if(num[i]>num[j]){
temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
System.out.println(num[1]);
sc.close();
}
}
이중반복문을 보면
바깥 반복문은 i = 0부터 2까지 안쪽 반복문은 j=i부터 2까지 돌아간다.
3개 비교 (index 0,1,2)
i | j |
0 | 1 |
0 | 2 |
1 | 2 |
메모리크기가 좀 더 크고 시간은 좀 더 걸리지만 간단하게 해결하는 방법도 있다. 그 방법이 코드 2이다.
코드 2 (Arrays.sort() 함수 이용)
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] num=new int[3];
for(int i=0;i<3;i++){
num[i]=sc.nextInt();
}
Arrays.sort(num);
System.out.println(num[1]);
sc.close();
}
}
JAVA 배열 정렬 - Arrays.sort() 함수 사용
" 오름차순 "
배열을 선언하고 배열안에 값을 넣은 뒤에
Arrays.sort(배열이름); 을 쓰면된다.
3.
Arrays.sort()함수를 이용하면 메모리와 시간은 조금 손해를 보지만, 코드길이는 확실히 준다.
4. 링크
https://www.acmicpc.net/problem/10817
'Computer Science > 자료구조와 알고리즘' 카테고리의 다른 글
[JAVA] 백준 2446번 : 별찍기 -9 (0) | 2020.07.25 |
---|---|
[JAVA] 2523 : 별찍기 -13 (0) | 2020.07.23 |
[JAVA] 백준 5543번 : 상근날드 (1) | 2020.07.23 |
[JAVA] 백준 10039번 : 평균점수 (0) | 2020.07.19 |
[JAVA] 백준 1110번 : 더하기 사이클 (0) | 2020.07.18 |