0408 스키마에듀 백준 3문제

2023. 4. 7. 21:45스키마에듀 c언어 수업

728x90

https://www.acmicpc.net/problem/1977

 

1977번: 완전제곱수

M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완

www.acmicpc.net

 

#include <stdio.h>  
int main() {
  int m=0, n=0, i=0, sum=0, tmp=0, min=10001;
  scanf("%d", &m);
  scanf("%d", &n);
  
  for(i=1;i<n/2;i++){
    tmp = i*i;

    if(tmp>=m && tmp<=n){
      sum += tmp;
      if(tmp<min){
        min=tmp;
      }
    }
  }
  
  if(sum==0){
    printf("-1");
    return 0;
  }
  printf("%d\n",sum);
  printf("%d\n",min);
  return 0;
}

 
https://www.acmicpc.net/problem/2292

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌

www.acmicpc.net

 

#include <stdio.h>
 
int main(){
    int N,x=1, cnt=1;
    scanf("%d",&N);
    
    //무한루프
    while(1){
        //N이 누적된 벌집의 수 보다 작거나 같을 경우
        if(N-x<=0) break;
        
        //cnt번째에 생성된 방의 갯수 빼기
        N-=x;
        
        //다음 번째에 생성되는 방의 갯수 계산
          x=cnt*6;
        
        //cnt증가
        cnt++;
    }
    printf("%d\n",cnt);
    return 0;
}

 

#include <stdio.h>  

int main() {

  int n=0, cnt=1, x=1;
  scanf("%d", &n);

  if(n==1){
    printf("1");
    return 0;
  }

  while(1){

    if(x>=n){
      break;
    }
    
    x += cnt*6;
    cnt++;
  }

  printf("%d", cnt);
  return 0;
  
}

 

 
https://www.acmicpc.net/problem/2480

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 

#include <stdio.h>  
int main() {
  int a=0, b=0, c=0, max=0;
  int reward=0;

  scanf("%d %d %d", &a, &b, &c);

  if(a==b && b==c && a==c){
    reward = 10000 + a*1000;
    
  }else if(a==b || a==c){
    reward = 1000 + a*100;
    
  }else if(b==c){
    reward = 1000 + b*100;
  }
  else{
    max = (a>b)?a:b;
    max = (max>c)?max:c;
    reward = max*100;
  }

  printf("%d\n",reward);
  return 0;
  
}

 
https://www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net

 
 
https://www.acmicpc.net/problem/1076

 

1076번: 저항

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

www.acmicpc.net

 

#include<stdio.h>
#include<string.h>

int findColor();

int main(void) {
    int i, co;
    long long value = 0;
    for(i=0;i<3;i++){
        co = findColor();
        if(i==0){
            value += co * 10;
        }
        else if(i==1){
            value += co;
        }
        else if(i==2 && co != 0){
            for(int j = 0;j<co;j++){
                value *= 10;
            }
        }
    }
    printf("%lld", value);
}

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();
}

// <math.h>의 pow(x,y)에는 변수가 들어가지지 않았음.