첫 번째 시도:
배열에 세 정수를 넣어서 정렬 후 배열에서 두 번째 정수를 출력하기로 함
문제점:
정렬을 구현 못하겠음
package till;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int a=scan.nextInt();
int b=scan.nextInt();
int c=scan.nextInt();
int[] order={a,b,c};
int temp=a;
for(int i=0;i<2;i++){
if(temp>order[i+1]){
temp=order[i+1];
order[i+1]=order[i];
order[i]=temp;
}
}
System.out.println(order[1]);
}
}
두 번째 시도:
입력받는 부분도 깔끔히 정리함
최대값을 구하고, 최대값의 인덱스를 구해 겂나 많은 if문으로 해결함
변명) 단계별로 풀기 하는 중인데 if문 사용하기 섹션에 있어서 if문으로 해봄 ^_^
문제점:
세상에 이렇게 무식한 방법이 없음
코드는 맞음
package till;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int[] order=new int[3];
int a=0;
for(int i=0;i<order.length;i++){
a=scan.nextInt();
order[i]=a;
}
//최댓값 구하기
int x=0;
int temp=order[0];
for(int j=0;j<order.length;j++){
if(temp<order[j]){
temp=order[j];
x=j;
}
}
int result=0;
if(x==1){
if(order[x-1]<order[x+1]){
result=order[x+1];
}
else{
result=order[x-1];
}
} else if(x==0){
if(order[x+1]<order[x+2]){
result=order[x+2];
}
else{
result=order[x+1];
}
}else if(x==2) {
if(order[x-2]<order[x-1]){
result=order[x-1];
}
else{
result=order[x-2];
}
}
System.out.println(result);
}
}
세 번째 시도(해답봄):
역시.. 더 쉽게 할 수 있는 메소드가 있었음
Arrays 클래스의 sort메소드 사용하면 됨
package till;
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int[] order=new int[3];
int a=0;
for(int i=0;i<order.length;i++){
a=scan.nextInt();
order[i]=a;
}
Arrays.sort(order);
System.out.println(order[1]);
}
}
'ALGORITHM > 푼 문제들&과정' 카테고리의 다른 글
[JAVA] 백준 1065번 (0) | 2019.03.03 |
---|---|
[JAVA] 백준 4344번 (0) | 2019.02.27 |
[JAVA] 백준 4673번 (0) | 2019.02.26 |
[JAVA] 백준 1924번 (0) | 2019.01.31 |
[JAVA] 백준 11720번 (0) | 2019.01.30 |
Comments