โท ๋ฌธ์ ์ค๋ช
์ ์ n์ด ์ฃผ์ด์ก์ ๋, n์ 1, 2, 3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฌธ์
์ด ๋, n์ ๋ฒ์๋ 1<=n<=10์ด๋ค.
โท ๋ฌธ์ ํ์ด
N์ด 10๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์์ด๊ธฐ ๋๋ฌธ์ N์ ์ต๋ 10๊ฐ ์ดํ์ 1,2,3์ ์๋ก ํํ์ด ๊ฐ๋ฅํ๋ค.
1+1+1+1+1+1+1+1+1+1 = 10
1) 10์ค for๋ฌธ์ ํ์ฉํ์ฌ ํ ์๋ฆฌ์ ํ๋์ฉ ๊ฐ์ ๋์ ํด๋ณด๋ฉด์ n์ ๊ฐ๊ณผ ๊ฐ์์ง๋ฅผ ํ์ธํ๋ค.
n์ ๊ฐ๊ณผ ๊ฐ๋ค๋ฉด ํด๋น ๊ฒฝ์ฐ๋ ์ฌ๋ฐ๋ฅธ ๊ฒฝ์ฐ์ ์๋ฏ๋ก ๋ฐฉ๋ฒ์ ์๋ฅผ countํ๋ค.
2) ์ฌ๊ทํจ์๋ฅผ ํ์ฉํ์ฌ ์ธ์๋ก sum, goal ๊ฐ์ ๋ณด๋ด๊ณ ๋์์ฌ ๋(์ฌ๊ทํจ์ return)๋ง๋ค count ํ๋ค.
โท ์๊ฐ๋ณต์ก๋
3๊ฐ์ง ๊ฒฝ์ฐ์ ์๋ฅผ 10๋ฒ ๋ํ๋ฉด ๋๋ฏ๋ก O(3*10) = O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค.
โท ์ ๋ต์ฝ๋
#include <iostream>
#include <vector>
using namespace std;
void Input();
int PresentSum(int T, int v);
int main() {
Input();
return 0;
}
void Input() {
int T = 0;
cin >> T;
for (int t = 0; t < T; t++) {
int num = 0;
cin >> num;
cout << PresentSum(T, num) << endl;
}
}
int PresentSum(int T, int num) {
for (int t = 0; t < T; t++) {
int count = 0;
for (int l1 = 1; l1 <= 3; l1++) {
if (l1 == num) {
count++;
}
for (int l2 = 1; l2 <= 3; l2++) {
if (l1 + l2 == num) {
count++;
}
for (int l3 = 1; l3 <= 3; l3++) {
if (l1 + l2 + l3 == num) {
count++;
}
for (int l4 = 1; l4 <= 3; l4++) {
if (l1 + l2 + l3 + l4 == num) {
count++;
}
for (int l5 = 1; l5 <= 3; l5++) {
if (l1 + l2 + l3 + l4 + l5 == num) {
count++;
}
for (int l6 = 1; l6 <= 3; l6++) {
if (l1 + l2 + l3 + l4 + l5 + l6 == num) {
count++;
}
for (int l7 = 1; l7 <= 3; l7++) {
if (l1 + l2 + l3 + l4 + l5 + l6 + l7 == num) {
count++;
}
for (int l8 = 1; l8 <= 3; l8++) {
if (l1 + l2 + l3 + l4 + l5 + l6 + l7 + l8 == num) {
count++;
}
for (int l9 = 1; l9 <= 3; l9++) {
if (l1 + l2 + l3 + l4 + l5 + l6 + l7 + l8 + l9 == num) {
count++;
}
for (int l10 = 1; l10 <= 3; l10++) {
if (l1 + l2 + l3 + l4 + l5 + l6 + l7 + l8 + l9 + l10 == num) {
count++;
}
}
}
}
}
}
}
}
}
}
}
return count;
}
}
#include <iostream>
using namespace std;
int PresentSum(int sum, int goal);
int main() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
cout << go(0, n) << '\n';
}
return 0;
}
int PresentSum(int sum, int goal) {
if (sum > goal) {
return 0;
}
if (sum == goal) {
return 1;
}
int count = 0;
for (int i = 1; i <= 3; i++) {
count += go(sum + i, goal);
}
return now;
}
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon][C++] 1759๋ฒ ์ํธ ๋ง๋ค๊ธฐ ๋ฌธ์ ์ค๋ช ๋ฐ ์ฝ๋ (0) | 2021.04.17 |
---|---|
[Baekjoon][C++] 2667๋ฒ ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ ๋ฌธ์ ์ค๋ช ๋ฐ ์ฝ๋ (0) | 2021.04.17 |
[Baekjoon][C++] 14500๋ฒ ํ ํธ๋ก๋ฏธ๋ ธ ๋ฌธ์ ์ค๋ช ๋ฐ ์ฝ๋ (0) | 2021.03.06 |
[Baekjoon][C++] 1476๋ฒ ๋ ์ง๊ณ์ฐ ๋ฌธ์ ์ค๋ช ๋ฐ ์ฝ๋ (0) | 2021.03.03 |
[Baekjoon][C++] 2309๋ฒ ์ผ๊ณฑ๋์์ด ๋ฌธ์ ์ค๋ช ๋ฐ ์ฝ๋ (0) | 2021.03.03 |