문제#
- 링크로 대체
풀이 및 주저리..
D3의 문제중 정답율이 좀 높아서 하나 풀고 마무리 해야지 라고 시작했다가.. 문제를 이해하는데 시간이 좀 걸렸다. 정말 간단해 보였지만 과거에 확률들을 다 까먹어서 그런지 시간이 좀 걸렸던 것 같다. 처음에 잘 꼽았던 확률을 생각해보면 잘꼽은 확률 * 잘꼽았을때의 성공률이고 두번 뒤집어서 꼽았다는 것은 처음 뒤집었을때 꽃히지 않은 상태인 1*p*(1-q)가 되고 그다음 q의 확률로 꼽히니 1p\(1-q)*q 가 되는 것이였다. 은근히 도출해내기 어려웠지만 코드는 간단했다.
풀이로 가장 중요한 것은 코드상의 while문 안의 어마어마한 조건식.. 이였던 것 같다. 전체 크기의 안쪽이면서 방향에 따라 처리를 해주기 위해서 조건식이 길어지게 되었고 한쪽방향의 끝까지 가줘야하다보니 좀 지저분해지는 느낌이 있었다. 네방향 처리를 해주는것도 조금 맘에 걸렸지만.. 더 좋은 코드가 생각나질 않아서.. 더 좋은 코드가 생각난다면? 돌아올수도 있다.
코드
package ssafy.swexpert.d3;
import java.util.Scanner;
public class Problem9700 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int iT = sc.nextInt();
for (int i = 1; i <= iT; i++) {
double p = sc.nextDouble();
double q = sc.nextDouble();
double s1 = (1 - p) * q;
double s2 = (1 - q) * p * q;
if (s1 < s2) {
System.out.println("#" + i + " " + "YES");
} else
System.out.println("#" + i + " " + "NO");
}
}
}
기억에 남길 것!
- 수학을 생각해보자