문제 : boj5691
필요 알고리즘 개념
- 수학
- 약간의 수학적 사고가 필요한 문제이다.
※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.
풀이
세 정수 중 두 정수가 주어지고, '가장 작은 정수 C'를 찾아야 한다.
그러므로 C <= LO <= HI (LO는 입력으로 주어진 두 정수 중 작은 값, HI는 입력으로 주어진 두 정수 중 큰 값) 순서로 정해야 한다.
이 때 중앙값이 평균과 동일하려면, C = LO - (HI-LO) 가 되야 한다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while (true) {
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
if (a==0 && b==0) break;
int hi = a>b?a:b;
int lo = a>b?b:a;
sb.append(a-b+a).append('\n');
}
System.out.print(sb);
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
[C++] 백준 15687 - 직사각형 (cpp) (0) | 2022.11.26 |
---|---|
[자바] 백준 26059 - Вендомат (java) (0) | 2022.11.26 |
[자바] 백준 25600 - Triathlon (java) (0) | 2022.11.25 |
[자바] 백준 26040 - 특정 대문자를 소문자로 바꾸기 (java) (0) | 2022.11.25 |
[자바] 백준 6131 - 완전 제곱수 (java) (0) | 2022.11.25 |
댓글