본문 바로가기
백준

[백준] 10817번 : 세 수 – JAVA [자바]

by Hongwoo 2022. 4. 12.
반응형

https://www.acmicpc.net/problem/10817

 

10817번: 세 수

첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 10817번 세 수도 코딩을 거의 처음 시작한 사람한테 추천하고 싶은 문제이다. 

 

이 문제에서는 한 줄로 세 수가 주어지고 이 수들 중에 두 번째로 큰 정수를 출력하면 된다. 보통 이 문제를 접했을 때 조건문, 즉 if 문을 써서 풀려고 시도를 할거 같다. 이 문제 풀이에서는 조금 다른 방식으로 이 문제를 푸는 법을 보여드리겠다.

 

먼저 세 수를 a, b, c로 입력받는다.

 

그리고 이 수들을 sum에 다 더한다. 즉, sum = a + b + c이다.

 

그리고 이 수들 중에 Math.max() 함수를 써서 최댓값을 구하고 sum에서 빼준다.

 

sum -= Math.max(a, Math.max(b, c));

 

마지막으로 Math.min() 함수를 써서 최솟값을 구하고 sum에서 마찬가지로 빼준다. 이렇게 하면 sum은 세 수들 중에서 두 번째 값만 남는다.

 

sum -= Math.min(a, Math.min(b,c));

 

이 sum만 출력해주면 끝난다.

 


  • 코드

 

import java.io.*;
import java.util.*;
public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int c = Integer.parseInt(st.nextToken());
        int sum = a + b + c;
        sum -= Math.max(a, Math.max(b, c));
        sum -= Math.min(a, Math.min(b, c));
        System.out.print(sum);
    }
}

 


  • 후기

이 문제는 코딩 경험이 거의 없는 사람들한테 추천한다.

 

반응형

댓글