inflearn logo
강의

Course

Instructor

Learning C language through problems

Stream Crossing

돌이 n 개이면 arr[n] 을 구해야 하는 거 아닌가요?

326

acoustic0419

8 asked

0

제가 잘못 이해한 것일 수도 있지만, 돌이 n 개라는 건 돌의 인덱스가 0~(n-1) 까지 있는 거니까, n 부터는 강을 건넌 것 아닌가요? 왜 arr[n] 이 아니라 arr[n+1] 을 구해야 하는 것인지 궁금합니다..

c

Answer 2

0

opellong135190

강사님 풀이가 훨씬 깔끔하네요.. 

직접 셀 생각은 해보지 못했는데 배워가요!

확률통계를 배우신 분들이라면 아래 풀이로 접근하셨을 수 도 있을것 같은데 (저는 아래처럼 풀었습니다)

혹시 이런식으로 접근해도 괜찮을까요? 문풀경험이 별로 없어서요

#include<stdio.h>

int main(){
int N,i,j,total;
scanf("%d",&N);
// 돌다리가 N 개면 N+1 번 뛰어야 함
// 두번 뛰기가 가능한 최대 횟수
int max = (N+1)/2;
// 총 가짓수
int cnt =0;
// 두번 뛰는 횟수 i
// 한번 뛰는 횟수 N+1 - 2*i
for(i=0; i<=max; i++){
total = N+1 - 2*i + i;
// totalCi = p1!/p2!*p3! 라 하면
int p1 = 1;
int p2 = 1;
int p3 = 1;
for(j=1; j<=total; j++){
p1 = p1*j;
}
for(j=1; j<=i; j++){
p2 = p2 * j;
}
for(j=1; j<=total-i; j++){
p3 = p3 * j;
}
cnt += p1/(p2*p3);
}
printf("%d",cnt);
}

0

codingcamp

arr[0] 은 돌이 아니라 철수가 서있는 땅입니다. arr[1]위치가 첫번째 돌입니다. arr[0]=1, arr[1]=1로 초기화한 이유는  영상의 9분정도에 설명이 나옵니다.

arr[n]은 n번 돌이고 arr[n+1]은 건너편 땅입니다. 땅까지 가는 경우가 건너는 경우입니다.

음료수 자판기 출력이 이상하게 나옵니다

0

141

2

i 값 초기화 질문

0

70

2

recipe for targe 'AA.exe' failed

0

62

1

30과 10의 xor

0

191

1

커리큘럼 문의 드립니다

0

232

1

for문에서 sum 관련 질문

0

179

1

이렇게 풀어도 맞는걸까요?

0

253

2

이렇게 풀어도 맞는 풀이일까요?

0

302

1

20페이지 홀,짝,제로 문제에서 이 코드로 짜도 괜찮을까요?

0

257

1

24. 최솟값 구하기

0

332

1

질문 있습니다.

0

324

1

배열을 전역변수로 설정하는 이유

1

665

1

41. A를 #으로에서 질문 있습니다.

0

291

1

20번 소수 판별하기에서 질문 있습니다.

0

422

1

42번 bus error;;;

0

612

1

정수형 배열에서 배열 크기

0

395

1

38. 자리찾기 커지는 방향으로..

0

303

1

37. 배열의 회전에서 ...

0

280

1

1차원 배열에서

0

270

1

지수연산에서

0

300

1

7.연필 개수 문제

0

379

1

a=(int)a 에서 왜 괄호를 붙이나요 a=int a 는 왜안되나요

0

844

1

섹션 6. 소수

0

320

1

왜 2중for문을 두개 쓴건가요?

0

238

1