2023. 8. 15. 15:46ㆍ스키마에듀 c언어 수업
https://www.acmicpc.net/problem/28701
28701번: 세제곱의 합
$a$의 제곱은 $a$를 두 번 곱한 수로, $a^2$으로 표현합니다. $a^2 = a \times a$입니다. 또한, $a$의 세제곱은 $a$를 세 번 곱한 수로, $a^3$으로 표현합니다. $a^3 = a \times a \times a$ 입니다.
www.acmicpc.net
https://www.acmicpc.net/problem/5543
5543번: 상근날드
입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격
www.acmicpc.net
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
https://www.acmicpc.net/source/18198606
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
#include <stdio.h>
int add[12] ={0,}; //덧셈 경우의 수 저장
int f(int n){
for(int i=4;i<=n;i++){
if(add[i]==0){
add[i] = add[i-3] + add[i-2] + add[i-1];
}
}
return add[n];
}
int main(void) {
add[1] = 1;
add[2] = 2;
add[3] = 4;
int t;
scanf("%d", &t);
for(int i=0;i<t;i++){
int n;
scanf("%d", &n);
printf("%d\n", f(n));
}
return 0;
}
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
int n1=0;
char a[51];
scanf("%s", a);
int z=0;
while(a[z]!='\0')
{
if(a[z]=='(')
n1++;
if(a[z]==')')
n1--;
if(n1<0)
{
printf("NO\n");
break;
}
z++;
}
if(n1==0)
printf("YES\n");
else if(n1>0)
printf("NO\n");
}
}
https://www.acmicpc.net/problem/1920
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
#include <stdio.h>
#include <stdlib.h>
int n;
int arr[100001];
int compare(const int*a, const int*b){
if (*a <*b){
return -1;
}else{
return 1;
}
return 0;
}
int binary_search(int x){
int pl =0;
int pc;
int pr = n-1;
do{
pc = (pl+pr)/2;
if(arr[pc]==x){
return 1;
}
if(arr[pc] < x){
pl = pc+1;
}
if(arr[pc] > x){
pr = pc-1;
}
}while(pl<=pr);
return 0;
}
int main(void){
int m;
scanf("%d", &n);
for(int i=0;i<n;i++){
scanf("%d", &arr[i]);
}
qsort(arr,n, sizeof(arr[0]), compare);
scanf("%d", &m);
int find;
for(int i=0;i<m;i++){
scanf("%d", &find);
int result = binary_search(find);
printf("%d\n",result);
}
return 0;
}
https://www.acmicpc.net/problem/25305
25305번: 커트라인
시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다.
www.acmicpc.net
#include <stdio.h>
#include <stdlib.h>
int compare(const int*a, const int*b){
if (*a < *b){
return -1;
}else{
return 1;
}
return 0;
}
int main(void){
int n;
int arr[1001];
int k;
scanf("%d %d", &n, &k);
for(int i=0;i<n;i++){
scanf("%d", &arr[i]);
}
qsort(arr, n, sizeof(arr[0]), compare);
// for(int i=0;i<n;i++){
// printf("%d ",arr[i]);
// }
printf("%d",arr[n-k]);
return 0;
}
https://www.acmicpc.net/problem/4949
4949번: 균형잡힌 세상
각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에
www.acmicpc.net
#include <stdio.h>
#include <string.h>
#define MAX 100
char stack[MAX];
int top = -1;
//스택에 데이터를 집어넣는다.
int push(char ch) {
if (top >= MAX - 1) return -1;
return stack[++top] = ch;
}
//스택에서 데이터를 뽑는다.
int pop() {
if (top < 0) return -1;
return stack[top--] = '\0';
}
//스택 상단의 내용을 읽는다.
char peek() {
return stack[top];
}
//균형잡힌 문자열인지를 판단
void Result(char *ch, int size) {
for (int i = 0; i < size; i++) {
if (ch[i] == '(' || ch[i] == ')' || ch[i] == '[' || ch[i] == ']') {
//top가 -1이라면 무조건 push
if (top == -1) push(ch[i]);
else {
//짝이라면 pop
if (peek() == '('&&ch[i] == ')') pop();
else if (peek() == '['&&ch[i] == ']') pop();
//그 외 push
else push(ch[i]);
}
}
}
//top가 -1이면 균형잡힌 문자열
if (top == -1) printf("yes\n");
else printf("no\n");
}
int main() {
char str[MAX];
while (1) {
top = -1;
gets(str);
if (strcmp(str, ".") == 0) break;
Result(str, strlen(str));
}
return 0;
}
'스키마에듀 c언어 수업' 카테고리의 다른 글
스키마에듀_백준문제 0812 (1) | 2023.08.06 |
---|---|
스키마에듀 백준 0729 (0) | 2023.07.25 |
스키마에듀 수업 0721 (0) | 2023.07.21 |
0715 스키마에듀 c언어 자료구조 수업 (0) | 2023.07.15 |
스키마에듀 수업 0713 백준 (0) | 2023.07.13 |