본문 바로가기

TIL(Today I Learned)

99클럽 코테 스터디 18일차 TIL + 백준 1590 (캠프가는 영식, java)

반응형

오늘의 학습 키워드

  • 이분탐색

 

문제 탐색하기

 

문제 풀이 설계하기

이분 탐색으로 문제 풀이하였습니다.

 

코드

import java.io.*;
import java.math.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException {
    	Scanner sc = new Scanner(System.in);
    	
    	int n = sc.nextInt();
    	int t = sc.nextInt();
    	
    	int min = Integer.MAX_VALUE;
    	
    	for(int i=0; i<n; i++) {
    		int s = sc.nextInt();
    		int l = sc.nextInt();
    		int c = sc.nextInt();
    		
    		int answer = Integer.MAX_VALUE;
    		int left = 0;
    		int right = c-1;
    		
    		while(left <= right) {
    			int mid = (left + right) / 2;
    			int dept = s + l * mid;
    			
    			if(dept >= t) {
    				answer = dept;
    				right = mid - 1;
    			}else {
    				left = mid + 1;
    			}
    			
    		}
    		
    		if(answer != Integer.MAX_VALUE) {
    			min = Math.min(min, answer - t);
    		}
    	}
    	
    	System.out.println(min == Integer.MAX_VALUE ? -1 : min);
    	
    }
}

 

오늘의 회고

이분탐색 문제를 계속해서 풀고있지만 답을 내는 규칙(?)을 찾기가 어려워서 좀 더 연습이 필요할 것 같다는 생각을 했습니다.
반응형