스키마에듀 0325 백준 3문제

2023. 3. 23. 21:39스키마에듀 c언어 수업

728x90

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

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

#include <stdio.h>

int main(void){

  int N=0, div=2;
  scanf("%d", &N);

  while(N>1){
    
   while(1){
     
     if((N%div) !=0){
       div++;
       break;
     }

     printf("%d\n",div);
     N = N/div;
     
   }
  }
}

 

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

 

1550번: 16진수

첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다.

www.acmicpc.net

#include <stdio.h>

int main(void){
  int input=0;
  scanf("%x", &input);
  printf("%d", input);
  return 0;
}

 

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

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

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

int main(void){
  int i=0, j=0, result=0, tmp=0, sum=0;
  char input[51];
  int arr[50]={0};
  scanf("%s", input);

  for(i = 0; i <= strlen(input); i++){
    
    if(input[i]=='+'){
      sum += tmp;
      tmp=0;
      
    }else if(input[i] == '-'|| i == strlen(input)){
      sum += tmp;
      arr[j++] = sum;
      sum = 0;
      tmp = 0;
    }
    else{
      tmp = tmp*10;
      tmp = tmp + input[i] - '0';
    }
  }

  result = arr[0];

  for(i=1 ; i<j ; i++){
    result -= arr[i];
  }
  printf("%d", result);
  return 0;
}