728x90
반응형
2024.07.25기준 - 브론즈3
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 현재 위치에서 몇번을 시도하여 보물을 찾는지 횟수를 출력하는 문제입니다.
더보기
이 문제는 간단하게 현재 위치에서 왼쪽 보물과 오른쪽 보물의 거리가 가까운 것에서
왼쪽이 더 가깝다면 (거리) * 2 + 1(시작 시 조사)를 출력.
오른쪽이 가깝거나 같다면 (거리) * 2 - 1 + 1(시작 시 조사)를 출력하면 되는 문제입니다.
코드
package Main;
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));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine()); // 테스트 케이스 개수
int l, r, s, ls, rs;
StringTokenizer st;
while (t-- > 0) {
st = new StringTokenizer(br.readLine());
l = Integer.parseInt(st.nextToken()); // 왼쪽 보물
r = Integer.parseInt(st.nextToken()); // 오른쪽 보물
s = Integer.parseInt(st.nextToken()); // 현재 위치
ls = s - l; // 현재 위치에서 왼쪽 보물까지 거리
rs = r - s; // 현재 위치에서 오른쪽 보물까지 거리
if (ls < rs) { // 왼쪽이 더 가깝다면
// 거리에 2배에 처음 시작때 조사를 하기 때문에 +1
sb.append(ls * 2 + 1).append("\n");
} else {
// 거리 2배의 -1인데 처음 시작때 조사를 하기 때문에 +1
sb.append(2 * rs).append("\n");
}
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 32025번 체육은 수학과목 입니다 (0) | 2024.07.26 |
---|---|
BEAKJOON / 백준 - JAVA 31995번 게임말 올려놓기 (0) | 2024.07.25 |
BAEKJOON / 백준 - JAVA 1105번 팔 (0) | 2024.07.25 |
BAEKJOON / 백준 - JAVA 1080번 행렬 (2) | 2024.07.24 |
BAEKJOON / 백준 - JAVA 1058번 친구 (3) | 2024.07.23 |