0415 백준 3문제

2023. 4. 10. 11:39BOJ

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

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

#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

 

1076번: 저항

전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한

www.acmicpc.net

** 주의해야할 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

 

10870번: 피보나치 수 5

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

#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

 

2529번: 부등호

두 종류의 부등호 기호 ‘<’와 ‘>’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시

www.acmicpc.net