브론즈 III 31

[백준 2747] 피보나치 수 [C]

풀이 Dynamic Programming 방식으로 풀이했다. 소스코드 #include int fibo(int n){ int fiboNum[2] = {0, 1}; for (int i = 1 ; i < n; i++) fiboNum[(i+1)%2] = fiboNum[i%2] + fiboNum[(i-1)%2]; return fiboNum[n%2]; } int main(){ int n; scanf("%d", &n); printf("%d", fibo(n)); } 출처 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 ..

[백준 2523] 별 찍기 - 13 [C]

풀이 이전의 별찍기에서는 abs()를 사용할 때, math.h를 사용했지만, 이번 문제에서는 컴파일 에러가 뜬다. stdlib.h를 사용해주자 소스코드 #include #include int main() { int N; scanf("%d", &N); for (int i = -N + 1; i < N; i++){ for (int j = abs(i); j < N; j++) putchar('*'); putchar(10); } } 출처 2523번: 별 찍기 - 13 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net

[백준 2446] 별 찍기 - 9 [C]

풀이 행의 개수는 2N - 1개, 열의 공백과 별의 개수는 2N-1개에서 N개까지 한 개씩 감소했다가, 다시 2N-1개까지 한 개씩 증가한다. 때문에, 열의 범위를 5 ~ 2N - 1로 지정했다. 별을 출력한 후에는 공백을 출력하지 않고, 개행을 해야된다는 점을 유의하자. 소스코드 #include #include int main(){ int N; scanf("%d", &N); for (int i = -N + 1; i < N; i++){ for (int j = 0; j < N + abs(i); j++) putchar(j + 1 < N-abs(i) ? 32 : '*'); putchar(10); } } 출처 2446번: 별 찍기 - 9 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmi..

[백준 2445] 별 찍기 - 8 [C]

풀이 2N-1개의 행에 2N개의 열으로 구성되며, 별과 공백의 개수가 증가/감소를 하기 때문에, 음수와 양수를 사용해 문제를 해결했다. 때문에 열에서는 0을 사용하지 않기 위해 -1 다음에는 1을 사용할 수 있도록 반복문의 증감식을 설정했다. 소스코드 #include #include int main(){ int N; scanf("%d", &N); for (int i = -N +1; i abs(i) ? '*' : 32); putchar(10); } } 출처 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net