jaeokbr   5년 전

문제 이해를 잘 못한건지.. 맞는 것 같은데 계속 틀려서 이해한 부분이 맞는지 확인 부탁드립니다.

tc(test case) 를 입력 받은 후 받은 숫자 만큼 반복 테스트를 진행 하며

각 테스트에서 사용할 n (주사위 숫자 수) k (목표 sum) 을 입력 받은 후

n 만큼의 주사위 값을 입력 받습니다.

주사위를 다시 돌리기전 총 주사위 값의 합을 sum

확률을 고려하지 않은 전체 경우의 수 6^n 값을 pc 로 정의 하였고

수를 입력 받으면서 최소 값이 있는 위치를 idx

최소값을 min 으로 정의 하였습니다.

발생할 수 있는 경우의수를 아래와 같이 총 네가지로 나누었습니다. (로직 상 틀린 부분이 있다면 case4 에서 틀렸을 것 같습니다.)

case 1. min 값을 제외한 나머지 값 만으로도 이미 k 이상인 경우 ( idx 위치를 다시 굴려도 확률에 영향을 받지 않는 경우 )

ex)  n = 3 , k = 8, a = { 2, 5, 4 } 

     pc = 6^n , idx 위치만 1 출력

case 2. sum 값은 k 이상이지만, min 값이 바뀔 경우 k 값보다 아래 일 수 있는 경우 (다시 안굴려도 성공인데, 다시 굴려서 실패 할 수도 있는 경우)

 ex ) n = 3, k = 8, a = { 2, 3, 3 }

   위와 같은 경우에 이미 sum 이상이기 때문에 다시 안 굴려도 된다고 판단하여

    pc = 6 ^ n, 모든 위치 0 출력 

case 3. min 값의 위치가 6이었어도 k 이상 일 수 없는 경우 ( 성공 못하는 경우 )

ex) n = 3, k = 10, a = { 1, 1, 1 }

    다시 굴리는 의미가 없다고 판단되어

    pc = 0, 모든 위치 0 출력

case 4. sum 값은 k 미만 이지만 min 값을 바꾸면 성공할 가능성이 있는 경우 (현재는 실패, 다시 굴려서 성공 할 가능성이 있는 경우)

ex) n = 3, k = 10, a = { 2, 3, 4 }

  주사위 값 중 가장 작은 수인  2와 그 위치를 각각 min, idx 로 대입

  min = 2, idx = 0

  p = 2 를 다시 굴려서 성공할 확률 ( 3 이상이 나올 확률  ) = 4 / 6

  pc = 6 ^ n * p 


 감사합니다~

jh05013   5년 전

주사위를 하나만 다시 굴릴 필요는 없습니다. 원하는 개수만큼 골라서 다시 굴릴 수 있습니다.

jaeokbr   5년 전

문제를 잘못 읽었네요 ㅠ

감사합니다~

댓글을 작성하려면 로그인해야 합니다.