현재
[AtcoderBeginnerContest][242][A]T-shirt 본문
<코드>
import java.util.*;
public class ABC_242_A_Tshirt {
public static void main (String []args){
Scanner scn = new Scanner(System.in);
// 일단 가정하고 ㄱㄱ
double A = scn.nextInt();
double B = scn.nextInt();
double C = scn.nextInt();
int iroha = scn.nextInt();
if ( iroha <= A ){
// System.out.println("받음");
double probability = 1;
System.out.println(probability);
}else if ( iroha > A && iroha <= B){
// System.out.println("확률적으로 받음"); // 받을 확률 (B - ( A )) / c
double probability = ( C / (B - ( A )));
System.out.println(probability);
}else{
// System.out.println("받지 못함ㅋ");
double probability = 0;
System.out.println(probability);
}
}
}
// 어떤 프로그래밍 대회에서 아래의 룰을 따라서 참가자에게 티셔츠를줍니다.
// 상위 A위 까지의 참가자는, 반드시 T셔츠를 받을 수 있습니다.
// 게다가, 상위 A+1위까지 B위 까지의 참가자 C명이 랜덤으로 선발되
// 동일한 T 셔츠를 받습니다. 1000명의 참가자가 있습니다
// 참가자로 있는 이로하짱은 X위를 하였스니다. 이때
// 이로하 짱이 티셔츠를 받을 수 있는 확률을 구해주세요.
<문제풀이>
일단 문제를 제대로 이해 하는게 중요하다. 처음에는 나도 무슨 소린지 몰라서 해맸는데 문제를 이해하고 조건만 제대로 세운 다면 크게 어려움은 없는 문제였다.
일단 X가 A보다 작거나 같으면 무조건 셔츠를 받을 수 있으므로 확률은 1이다.
그리고 X가 B보다 높으면 무조건 셔츠를 받을 수 없으므로 확률은 0이다.
그러므로 (C / (B - ( A )) 의 확률만 구해줘야 한다. 단, 주의할점은 int로 받게되면 몫이 1미만일때는 전부 0으로 처리되니
double로 받았다.(float보다 double이 정확도가 높으므로 double로 받음).
<문제출처>
https://atcoder.jp/contests/abc242/tasks/abc242_a
A - T-shirt
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
atcoder.jp
'알고리즘 > 기타알고리즘문제' 카테고리의 다른 글
| 3.문장 속 단어(Split,substring) (0) | 2024.03.19 |
|---|---|
| 2. 대소문자 바꾸기(아스키코드, toLowerCase, toUpperCase) (0) | 2024.03.19 |
| 1. 문자 찾기(toCharArray) (0) | 2024.03.19 |
| 체스판 만들기(미완) (0) | 2023.09.18 |
| [배열] 문자열을 정수로 (0) | 2023.08.30 |