본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1167 : 두 번째 수

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1167 : 두 번째 수 (자바, JAVA)입니다.

intro

Question

문제 설명

입력

세 개의 정수가 공백으로 구분되어 입력된다.

출력

세 개의 정수를 작은 순서로 나열 했을 때, 두번째 수를 출력한다.

예시

  • 입력 : 201 20 3
  • 출력 : 20

Solution (풀이)

  • 풀이 1 : 메모리 11244, 시간 113
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) {    // a가 b보다 클 때
            if (b>c) {    // b가 c보다 클 때 = a > b > c
                bw.append(String.valueOf(b));
            } else {     // c가 b보다 클 때
                if (a>c) {    // a가 c보다 클 때 = a > c > b
                    bw.append(String.valueOf(c));
                } else {    // c가 a보다 클 때 = c > a > b
                    bw.append(String.valueOf(a));
                }
            } 
        } else {    // b가 a보다 클 때
            if (a>c) {    // a가 c보다 클 때 = b > a > c
                bw.append(String.valueOf(a));
            } else {    // c가 a보다 클 때
                if (b>c) {    // b가 c보다 클 때 = b > c > a
                    bw.append(String.valueOf(c));
                } else {    // c가 b보다 클 때 = c > b > a
                    bw.append(String.valueOf(b));
                }
            } 
        }

        bw.flush();
        br.close();
        bw.close();
    }
}
  • 풀이 2 : 메모리 11244, 시간 112
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(), " ");
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 3개의 숫자 입력 받기
        int[] number = new int[3]; 
        for (int i=0; i<3; i++) {
            // 입력받은 숫자 3개 배열에 저장
            number[i] = Integer.parseInt(st.nextToken());
        }

        // 정렬
        Arrays.sort(number);

        // 중간 index 출력 
        bw.append(String.valueOf(number[1]));
        bw.flush();
        br.close();
        bw.close();
    }
}
반응형