티스토리 뷰

반응형

데이터를 입력받은 후 데이터에서 가야하는 거리를 구한다.

 

가야하는 거리를 이동하는 최소값은 규칙이 있다.

 

이 규칙은 1부터 하나씩 최소값을 찾아보면 규칙이 보이고 규칙은 다음과 같다.

 

1 2 3 3 4 4 5 5 5 6 6 6 7 7 7 7 8 8 8 8 9 ... 와 같은 증가 형식을 띄게 된다.

 

이를 구현한 코드는 아래와 같다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int n = Integer.parseInt(br.readLine());
        
		for(int i = 0; i < n; i++) {
			String[] str = br.readLine().split(" ");
			int distance = Integer.parseInt(str[1]) - Integer.parseInt(str[0]);
			int repeat = 1;
			long sum = 0;
			int result = 0;
            
			for(int j = 1; j <= distance; j++) {
				result = j;
				sum += repeat;
                
				if(sum >= distance) {
					break;
				}
                
				if(j % 2 == 0) {
					repeat++;
				}
			}
            
			sb.append(result);
			sb.append("\n");
		}
        
		System.out.print(sb.toString());
	}
}
반응형

'프로그래밍 > 알고리즘' 카테고리의 다른 글

LCS(Longest Common Subsequence) + Java  (0) 2022.03.09
분산처리(백준: 1009 / 자바)  (0) 2022.02.14
퀵 소트  (0) 2017.06.13
플로이드 워셜 알고리즘  (0) 2016.12.29
삽입 정렬  (0) 2016.12.18
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday
글 보관함
«   2024/05   »
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