본문 바로가기
C, C++/PS in C, C++

[코드업 기초 100제] 1061~1080

by Air’s Big Data 2020. 9. 27.

#1061 : [기초-비트단위논리연산] 비트단위로 OR 하여 출력하기

입력된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자. 

#include <stdio.h>
 
 
int main (void)
{
    int num1,num2,result;
 
    
    scanf("%d %d", &num1 , &num2);
    result = num1 | num2; // |(bitwise or)
    
    printf("%d",result);
 
  
    return 0;
}

 

 

#1062 : [기초-비트단위논리연산] 비트단위로 XOR 하여 출력하기

입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자.

#include <stdio.h>
 
 
int main (void)
{
    int num1,num2,result;
 
    
    scanf("%d %d", &num1 , &num2);
    result = num1 ^ num2; // ^(bitwise xor)
    
    printf("%d",result);
 
  
    return 0;
}

 

 

#1063 : [기초-삼항연산] 두 정수 입력받아 큰 수 출력하기

입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자.

- 코드업 문제는 조건문을 사용하지 않고 3항 연산자 ? 를 사용하라고 했으나, 파이썬에서는 3항 연산자 ? 대신 if와 else를 사용한다.

- 연산자 ?는 3개의 요소로 "조건식 ? (참일 때의 값) : (거짓일 때의 값)” 의 형태로 사용하는 연산자이다.

   (예: 1 > 2 ? 0 : 1)

#include <stdio.h>
 
int main (void)
{
    int a,b;
 
    scanf("%d %d", &a , &b);
	printf("%d", a>b ? a:b);
 
    return 0;
}

 

 

#1064 : [기초-삼항연산] 정수 3개 입력받아 가장 작은 수 출력하기

입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 프로그램을 작성해보자. 

단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다.

- 코드업 문제는 조건문을 사용하지 않고 3항 연산자 ? 를 사용하라고 했으나, 파이썬에서는 3항 연산자 ? 대신 if와 else를 사용한다.


#include <stdio.h>
 
 
int main (void)
{
    int num1,num2,num3,result;
 
    
    scanf("%d %d %d", &num1 , &num2, &num3);
    
    result = num1<num2 ? num1:num2; // num1가 num2 보다 작으면(참이면) num1 = result
    result = result<num3 ? result:num3; //result가 num3 보다 작으면(참이면) result = result
    
    printf("%d",result);
 
    
    return 0;
}

 

 

#1065 : [기초-조건/선택실행구조]정수 3 개 입력받아 짝수만 출력

세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.

#include <stdio.h>
 
int main (void)
{
    int a,b,c,result;
    scanf("%d %d %d", &a , &b, &c);
    if((a%2)== 0) printf("%d\n",a);
    if((b%2)== 0) printf("%d\n",b);
    if((c%2)== 0) printf("%d\n",c);
    return 0;
}

 

 

#1066 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝/홀 출력

세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.

#include <stdio.h>
 
int main (void)
{
    int a,b,c,result;
    scanf("%d %d %d", &a , &b, &c);
    
    if((a%2)== 0) printf("even\n");
    else printf("odd\n");
    
    if((b%2)== 0) printf("even\n");
    else printf("odd\n");
    
    if((c%2)== 0) printf("even\n");
    else printf("odd\n");
    
    return 0;
}

 

 

#1067 : [기초-조건/선택실행구조] 정수 1개 입력받아 분석하기

정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자.

#include <stdio.h>
 
int main (void)
{
    int a;
    scanf("%d", &a);
    
    if(a>0) printf("plus\n");
    else printf("minus\n");
    
    if((a%2)== 0) printf("even");
    else printf("odd");
    
    return 0;
}

 

 

#1068 : [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기

점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.

평가 기준 점수 범위 : 평가 

90 ~ 100 : A 

70 ~   89 : B 

40 ~   69 : C 

0 ~   39 : D 

로 평가되어야 한다.

#include <stdio.h>
 
int main (void)
{
    int a;
    scanf("%d", &a);
    
    if(a>=90) printf("A");
    else if(a>=70) printf("B");
    else if(a>=40) printf("C");
    else printf("D");
    
    return 0;
}

 

 

#1069 : [기초-조건/선택실행구조] 평가 입력받아 다르게 출력하기

평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.

평가 내용 

평가 : 내용 

A : best!!! 

B : good!! 

C : run! 

D : slowly~ 

나머지 문자들 : what?

#include <stdio.h>
 
int main (void)
{
    char a;
    scanf("%c", &a);
    switch(a)
    {
	case 'A':
      printf("best!!!");
      break;
	case 'B':
      printf("good!!");
      break;
	case 'C':
      printf("run!");
      break;
	case 'D':
      printf("slowly~");
      break;
	default:
      printf("what?");
      break;
    }
    return 0;
}

 

 

#1070 : [기초-조건/선택실행구조] 월 입력받아 계절 출력하기

월이 입력될 때 계절 이름이 출력되도록 해보자.

예 월 : 계절 이름 

12, 1, 2 : winter 

3, 4, 5 : spring 

6, 7, 8 : summer 

9, 10, 11 : fall

#include<stdio.h>
 
int main(void)
{
    int season;
    scanf("%d",&season);
    switch(season)
    {
          case 3: 
          case 4: 
          case 5: 
            printf("spring");
            break;
          case 6: 
          case 7: 
          case 8: 
            printf("summer");
            break;
          case 9: 
          case 10: 
          case 11: 
            printf("fall");
            break;
 
          default:
            printf("winter");
            break;
    }
    return 0;
}

 

 

#1071 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기1

정수가 순서대로 입력된다. -2147483648 ~ +2147483647, 단 개수는 알 수 없다. 

0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자. 

#include <stdio.h>
 
int main (void)
{
    int num1;
replay://레이블은 콜론(:)으로 끝내고, 일반적으로 들여쓰기를 하지 않는다.
    scanf("%d",&num1);
    
    if(num1 != 0){
        printf("%d\n",num1);
        goto replay;  //replay라고 적혀있는 레이블로 실행 이동
    }
    return 0;
}
 

- goto 레이블: 명령을 사용하면 반복되는 부분을 여러 개 자유롭게 만들 수 있다.
- goto 명령은 반복 실행을 만들어낼 수 있는 가장 간단한 명령이지만, 복잡하게(스파게티 코드) 사용하는 경우, 이해가 어렵고 오류가 생기기 쉽다.

 

 

#1072 :[기초-반복실행구조] 정수 입력받아 계속 출력하기

n개의 정수가 순서대로 입력된다. 

-2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다. 

n개의 입력된 정수를 순서대로 출력해보자. 

#include <stdio.h>
 
int main (void)
{
    int n, m;
    scanf("%d",&n);
	reget: //레이블은 콜론( : ) 으로 끝난다.
    scanf("%d", &m);
    printf("%d\n", m);
    if(-n!= 0) goto reget; //reget:으로 이동, n의 값 1만큼 감소
}
 

 

 

#1073 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기2

정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.
0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.

#include <stdio.h>
 
int main (void)
{
    int num1 = 1;
    while(num1 != 0){
        scanf("%d",&num1);
        if(num1 !=0){printf("%d\n",num1);}
    }
    return 0;
}

 

 

#1074 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기1

정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.

#include <stdio.h>
 
int main (void)
{
    int num1;
    scanf("%d",&num1);
    while(num1 != 0){ //0이 아닌 것이 참인 동안
        printf("%d\n",num1);
        num1--; //1씩 감소
    }
    return 0;
}

 

 

#1075 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기2

정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.

#include <stdio.h>
 
int main (void)
{
    int num1;
    scanf("%d",&num1);
    while(num1 != 0){
        num1--;
        printf("%d\n",num1);
    }
    return 0;
}

 

 

#1076 : [기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기

영문자(a ~ z) 1개가 입력되었을 때 그 문자까지의 알파벳을 순서대로 출력해보자.

#include <stdio.h>

int main (void)
{
    char c;
    char a = 'a';
    scanf("%c", &c);
    do{
        printf("%c ",a);
        a++;
        c--;
    }
    while(c >= 'a');
    //printf("%c ",c);
    return 0;
}

 

 

#1077 : [기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기

정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.

#include <stdio.h>
 
int main (void)
{
    int num;
    scanf("%d",&num);
    
    for(int i = 0; i<=num;i++){
        printf("%d\n",i);
    }
    return 0;
}

 

 

#1078 : [기초-종합] 짝수 합 구하기

정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자.

#include <stdio.h>
 
int main (void)
{
    int num,sum;
    scanf("%d",&num);
    sum = 0;
    for(int i = 1; i<=num;i++){
        if(i%2 == 0){ //i의 홀수 짝수를 판별한후 짝수는 더함
            sum+=i;
        }
    }
    printf("%d",sum);
    return 0;
}

 

 

#1079 : [기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기

'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성해보자.

#include <stdio.h>
 
int main (void)
{
    char c;
    while(c != 'q'){
         scanf(" %c",&c);
         printf("%c\n",c);
    }
    return 0;
}

 

 

#1080 : [기초-종합] 언제까지 더해야 할까?

1, 2, 3 ... 을 계속 더해 나갈 때, 그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지 계속 더하는 프로그램을 작성해보자.

#include <stdio.h>
 
int main (void)
{
    int num,sum;
    scanf("%d",&num);
    int i = 0;
    sum = 0;
    while(1){
        i++;
        sum+=i;
        if(sum>=num){break;}
    }
    printf("%d",i);
    return 0;
}

 

 

CodeUp에서 제공한 문제를 C++로 풀었습니다.

문제 출처 : https://codeup.kr/problemset.php?search=%EA%B8%B0%EC%B4%88100%EC%A0%9C

'C, C++ > PS in C, C++' 카테고리의 다른 글

[코드업 기초 100제] 1081~1099  (0) 2020.09.30
[코드업 기초 100제] 1041~1060  (0) 2020.09.27
[코드업 기초 100제] 1021~1040  (0) 2020.09.27
[코드업 기초 100제] 1001~1020  (0) 2020.09.23

댓글