문제
수도코드 작성
A + BN < CN 이 되는 수를 찾는 공식
A< (C-B)N => A/(C-B)<N 이 나온다. 만약 A = 1000 , B = 70, C = 170 을 대입하면 N이 11일 때 true가 나오는 걸 알 수 있다.
그러면 저 공식에 +1을 하면 N번째가 나올 것이다.
작성한 코드
초안) 시간초과 에러가 떴다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long A = sc.nextLong();
long B = sc.nextLong();
long C = sc.nextLong();
int i=1;
if(B>C){
System.out.println(-1);
return;
}
else {
while (true) {
long sumRight = (B * i);
long sumLeft = (C * i);
if (A+sumRight < sumLeft) {
break;
} else {
i++;
}
}
}
System.out.println(i);
}
}
두번째 풀이) 정답
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long A = sc.nextLong();
long B = sc.nextLong();
long C = sc.nextLong();
int i=1;
if(B>=C){
System.out.println(-1);
}
else {
System.out.println((A/(C-B))+1); // 계산식으로 바로 적었다.
}
}
}
보완할 점 / 헷갈린 점
이번 문제를 풀면서 충격을 많이 먹었다.
코드작성이라고 해서 너무 어렵게 생각했던 것 같다.
그냥 수학 문제 풀듯이 답을 내면 될 것 같다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10828번 : 스택 - JAVA [자바] (4) | 2022.06.13 |
---|---|
[백준] 1037번 : 약수 - JAVA [자바] (0) | 2022.06.09 |
[백준] 1152번 : 단어의 개수 - JAVA [자바] (0) | 2022.06.07 |
[백준] 2675번 : 문자열 반복 - JAVA [자바] (0) | 2022.06.07 |
[백준] 1978번 : 소수 찾기 - JAVA [자바] (0) | 2022.06.03 |