문제
세 정수 A, B, C가 주어진다. 이 때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
출력
두 번째로 큰 정수를 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package step4; import java.util.Scanner; public class PrintIfInteger { @SuppressWarnings("resource") public static void main(String[] args) { Scanner scan = new Scanner(System.in); //int intValA = 20; //int intValB = 10; //int intValC = 10; int intValA = scan.nextInt(); int intValB = scan.nextInt(); int intValC = scan.nextInt(); //명확히 구분 될 때 if(((intValA > intValB && intValA < intValC) || (intValA > intValC && intValA < intValB)) && (intValB != intValC)) { System.out.println(intValA); } else if(((intValB > intValA && intValB < intValC) || (intValB > intValC && intValB < intValA)) && (intValA != intValC)) { System.out.println(intValB); } else if(((intValC > intValA && intValC < intValB) || (intValC > intValB && intValC < intValA)) && (intValA != intValB) ) { System.out.println(intValC); //두 수가 같을 때 } else if((intValA == intValB) || (intValA == intValC)) { System.out.println(intValA); } else if((intValB == intValC)) { System.out.println(intValB); //세 수가 같을 때 } else if((intValA == intValB) && (intValA == intValC) && (intValB == intValC)) { System.out.println(intValA); } } }// |
문제에 대한 답은 상당히 다양할 것이다.. 우선 나는 각 3개의 입력값을 설정한 상태에서 if 를 충실히 사용했다.. 각각에 대한 경우에 대한 비교를 한 패턴이기 때문에 소스가 어찌보면 지저분하다.. ㅎㅎ
하지만 모든 분들이 알듯이 소스에 대한 코딩에 대한 답은 없으므로 자신의 입맛에 맞게 혹은 자신이 실험하고픈 방향대로 해보면 좋을 듯 하다.. 세상에 모든 소스는 내가 발전하기 위한 참고용이지.. 정답은 아니니 말이다..
댓글 없음:
댓글 쓰기