[백준/JAVA] 23972번 악마의 제안

정은아·2024년 6월 7일

[알고리즘] 수학 모음

목록 보기
106/152
post-thumbnail

문제

내 풀이

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

public class Main extends Exception {
    public static void main(String[] args) throws IOException {
        // 악마에게 K원 지불하면, 지불하고 남은 금액을 N배로 만들어준다고 한다.
        // 자신이 최소 몇 원 가지고 있을 때 손해를 안볼지 알고싶다.
        // 아니.. 그냥 주는대로 불려준다그러지 뭘 또 수학적으로 어쩌구저쩌구.. 쩨쩨한악마..

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine());

        long devil = Long.parseLong(st.nextToken());
        long times = Long.parseLong(st.nextToken());
        long money = 0;

        // 가진돈 - 지불할 돈 * 배수 = 가진 돈
        if (times == 1){
            money = -1L;
        }else{
            money = (devil * times) / (times - 1L);

            if ((devil * times) % (times - 1L) != 0L){
                money += 1L;
            }
        }

        sb.append(money);
        System.out.println(sb.toString());
    }
}

느낀점

계속 틀려서 답도 좀 찾아보고 했는데도.. 계속 틀렸는데
처음부터 long으로 받아와야했다. 곱하는 부분에서 (long)형변환 하더라도 틀리게 된다.

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글