본문 바로가기

BaekJoon/C++82

9012 : 괄호 (C) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net #include #include #include typedef struct { char data; struct Node *next; } Node; typedef struct { int count; Node *top; } Stack; void push(Stack *stack) { Node *node = (Node*)malloc(sizeof(Node)); node->data = '('; node->next = stack->top; st.. 2021. 1. 9.
10828 : 스택 (C) 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net #include #include #include typedef struct { int data; struct Node *next; } Node; typedef struct { int count; Node *top; } Stack; void push(Stack *stack, int data) { Node *node = (Node*)malloc(sizeof(Node)); node->data = data; node->next = stack->top; .. 2021. 1. 9.
10870 : 피보나치 수 5 (C++) 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net #include using namespace std; int fibo(int n) { if(n == 0) return 0; else if (n == 1) return 1; else return fibo(n-1) + fibo(n-2); } int main() { int n; scanf("%d", &n); printf("%d", fibo(n)); return 0; } 순환(recursion)또는 재귀로 푸는 피보나치 수열 피보나.. 2020. 12. 21.
10872 : 팩토리얼 (C++) 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net #include using namespace std; int factorial(int n) { if(n 2020. 12. 20.
2751 : 수 정렬하기 2 (C++) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #include #include using namespace std; int main() { int size = 0; cin >> size; int a[size]; for(int i = 0; i > a[i]; } sort(a, a + size); for(int i = 0; i < size; i++) printf("%d\n", a[i]); return 0; } c++에 내장된 sort함수를 사용하였으며 최악의 상황에.. 2020. 11. 21.
2798 : 블랙잭 (C++) 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있 www.acmicpc.net #include using namespace std; int main() { int N, M; int Max = 0; int Sum = 0; cin >> N >> M; int card[N]; for(int i = 0; i > card[i]; } for(int i = 0; i < N-2; i++) { for(int j = i + 1; j < N-1; j++) { for(int k = j + 1; k .. 2020. 11. 12.
1152 : 단어의 개수 (C++) 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net #include #include using namespace std; int main() { string S; int count = 1; getline(cin, S, '\n'); if(S.size() == 0 || (S.size() == 1 && S[0] == ' ')) { cout 2020. 11. 12.
10809 : 알파벳 찾기 (C++) 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net #include #include using namespace std; int main() { int order[26]; fill(order, order + 26, -1); string S; cin >> S; for(int i = 0; i 2020. 11. 8.
11720 : 숫자의 합 (C++) 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net #include #include using namespace std; int main() { int a; string b; cin >> a >> b; int sum = 0; for(int i = 0; i < a; i++) { sum += b[i] - 48; } cout 2020. 11. 5.