21.05.30 기록

최대 1 분 소요

  • 백준 알고리즘 1712 풀이 완료

    • 내가 푼 1712 풀이 (메모리 14.2MB, 시간 128ms로 통과)
      입력 값을 매개변수로 사용하고 출력 값을 반환하는 static 메서드를 사용하여 풀이했다.
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    public class B1712 {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            System.out.println(getBreakEvenPoint(Integer.parseInt(st.nextToken())
                    , Integer.parseInt(st.nextToken())
                    , Integer.parseInt(st.nextToken()) ));
    
        }
    
        public static int getBreakEvenPoint(int fix, int variable, int price) {
            if(price - variable > 0) {
                int N = fix / (price - variable);
                return (N+1);
            }
            else return -1;
        }
    }
    


    • 해설 풀이 (메모리 14.1MB, 시간 124ms로 통과)
      손익 계산을 하려면 (C - B)로 나누어야 하기 때문에 C - B > 0 이어야한다.
      이는 C > B로 표현하여 손익 계산을 하거나 C <= B로 표현하여 -1을 출력할 수 있다.
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    public class B1712 {
        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());
    
            if(C > B) System.out.println( (A / (C-B)) + 1 );
            else System.out.println(-1);
    
        }
    }
    

카테고리:

업데이트: