0415 백준 3문제
2023. 4. 10. 11:39ㆍBOJ
728x90
https://www.acmicpc.net/problem/17478
#include<stdio.h>
int N;
void printLine(int k){
for(int i=0;i<k;i++){
printf("____");
}
}
void chatBot(int n){
printLine(n);
printf("\"재귀함수가 뭔가요?\"\n");
if(n>=N){
printLine(n);
printf("\"재귀함수는 자기 자신을 호출하는 함수라네\"\n");
printLine(n);
printf("라고 답변하였지.\n");
return;
}
printLine(n);
printf("\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n");
printLine(n);
printf("마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n");
printLine(n);
printf("그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"\n");
chatBot(n+1);
printLine(n);
printf("라고 답변하였지.\n");
}
int main(void)
{
scanf("%d", &N);
printf("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.\n");
chatBot(0);
return 0;
}
https://www.acmicpc.net/problem/1546
브론즈 1
#include <stdio.h>
int main(void){
int n=0, i=0;
double M=0, sum=0;
scanf("%d", &n);
double a[1001] = {0,};
for(i=0;i<n;i++){
scanf("%lf", &a[i]);
if(a[i]>M){
M = a[i]; //점수의 최댓값
}
}
for(i=0;i<n;i++){
a[i] = a[i]/M*100;
sum += a[i];
}
printf("%lf", (double)sum/n);
return 0;
}
https://www.acmicpc.net/problem/1076
** 주의해야할 input **
black
black
black
0일 때 고려
#include <stdio.h>
#include <string.h>
int findColor(){
char color[7] ={};
scanf("%s",color);
if(strcmp(color,"black")==0){
return 0;
}else if(strcmp(color,"brown")==0){
return 1;
}else if(strcmp(color,"red")==0){
return 2;
}else if(strcmp(color,"orange")==0){
return 3;
}else if(strcmp(color,"yellow")==0){
return 4;
}else if(strcmp(color,"green")==0){
return 5;
}else if(strcmp(color,"blue")==0){
return 6;
}else if(strcmp(color,"violet")==0){
return 7;
}else if(strcmp(color,"grey")==0){
return 8;
}else if(strcmp(color,"white")==0){
return 9;
}
else{
return findColor();
}
}
int main(void){
int i=0, co=0, j=0;
long long result =0;
for(i=0;i<3;i++){
co = findColor();
if(i==0){
result += co*10;
}else if(i==1){
result += co;
}else if(i==2 && co!=0){
for(j=0;j<co;j++){ //반복문 중첩에서는 다른변수를 쓰자!
result *= 10;
}
}
}
printf("%lld",result);
return 0;
}
https://www.acmicpc.net/problem/10870
#include <stdio.h>
int fibbo(int n){
if(n==0){
return 0;
}
if(n==1){
return 1;
}
return fibbo(n-1) + fibbo(n-2);
}
int main(void){
int n;
scanf("%d", &n);
int result = fibbo(n);
printf("%d", result);
return 0;
}
fibbo(n) : 피보나치 수열의 n번째 값
n=5 일 때 -> 2 +3 = 5
0, 1, 1, 2, 3, 5
f(0) f(1) f(2) f(3) f(4) f(5)
f(0) = 0, f(1) = 1
f(5)
= f(4) + f(3)
= ( f(3)+f(2) ) + (f(2) + 1)
= ( ( f(2)+f(1) ) + (1 + 0) ) + ( (1 + 0) + 1)
= ( ( 1+0 ) + 1 ) + (1 + 0) ) + ( (1 + 0) + 1)
= (2+1) + (1+1)
https://www.acmicpc.net/problem/2529
'BOJ' 카테고리의 다른 글
백준 11725 트리의 부모 찾기 #python # BFS (0) | 2023.07.25 |
---|---|
백준 23305 수강변경 #그리디 (python) (0) | 2023.07.18 |
백준 1927 최소 힙 (python) 🥈 실버2 (0) | 2023.03.20 |
백준 13305 주유소 _ 실버3_ 그리디 (1) | 2023.03.17 |
백준 5585 거스름돈 (python) (0) | 2023.02.26 |