Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 17143
- 17136
- 재귀
- 색종이 붙이기
- 좋아요
- 14502
- Java
- 백준
- 괄호추가하기
- 16637
- 1182
- django
- 구슬탈출2
- 알고리즘
- 댓글
- 미세먼지 안녕!
- 인스타그램
- 인스타
- 9095
- 14888
- 부분수열의 합
- 로또
- 연산자 끼워넣기
- Ajax
- 6603
- 장고
- 17144
- 17472
- 다리 만들기2
- 따라하기
Archives
- Today
- Total
Be a developer
백준 9095 1,2,3 더하기 본문
모든 방법의 수를 구하는 것이기 때문에 브루트포스로 푼다.
1,2,3 3가지 경우가 10번 가능하기 때문에 최대 3^10의 시간복잡도이다.
하지만 1을 10자리로 했을 때 최대의 경우의 수가 생기므로 3^10보다는 작을 것이다.
3^10도 1초의 제한시간 안에 가능하다.
for문으로 풀려면 10개의 for문을 작성해야한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <cstdio> int main() { int t; scanf("%d",&t); while (t--) { int ans = 0; int n; scanf("%d",&n); for (int l1=1; l1<=3; l1++) { if (l1 == n) { ans += 1; } for (int l2=1; l2<=3; l2++) { if (l1+l2 == n) { ans += 1; } for (int l3=1; l3<=3; l3++) { if (l1+l2+l3 == n) { ans += 1; } for (int l4=1; l4<=3; l4++) { if (l1+l2+l3+l4 == n) { ans += 1; } for (int l5=1; l5<=3; l5++) { if (l1+l2+l3+l4+l5 == n) { ans += 1; } for (int l6=1; l6<=3; l6++) { if (l1+l2+l3+l4+l5+l6 == n) { ans += 1; } for (int l7=1; l7<=3; l7++) { if (l1+l2+l3+l4+l5+l6+l7 == n) { ans += 1; } for (int l8=1; l8<=3; l8++) { if (l1+l2+l3+l4+l5+l6+l7+l8 == n) { ans += 1; } for (int l9=1; l9<=3; l9++) { if (l1+l2+l3+l4+l5+l6+l7+l8+l9 == n) { ans += 1; } for (int l0=1; l0<=3; l0++) { if (l1+l2+l3+l4+l5+l6+l7+l8+l9+l0 == n) { ans += 1; } } } } } } } } } } } printf("%d\n",ans); } return 0; } | cs |
'알고리즘' 카테고리의 다른 글
백준 10819 차이를 최대로 (0) | 2019.03.27 |
---|---|
백준 10972 다음 순열 (0) | 2019.03.27 |
백준 14500 테트로미노 (0) | 2019.03.27 |
백준 1476 날짜 계산 (0) | 2019.03.26 |
백준 2309 일곱 난쟁이 (0) | 2019.03.25 |
Comments