알고리즘/백준(BOJ) 문제풀이

[C언어 백준 풀이][Bronze V] 사칙 연산 10문제 : 곱셈, 나머지, 평균값 응용

restudy 2021. 8. 21. 17:40
반응형

1000번 : A+B


두 정수를 더한 값을 출력하는 문제입니다.

#include<stdio.h> 

int main() { 
	int a, b;
    scanf("%d %d", &a, &b);
    printf("%d", a+b); 
}

 

1001번 : A-B


두 정수의 차이값을 출력하는 문제입니다.
이 때 앞에 입력된 정수에서 뒤에 입력된 정수를 빼야 합니다.

#include<stdio.h> 

int main() { 
	int a, b; 
    scanf("%d %d", &a, &b); 
    printf("%d", a-b); 
}

 

1271번 : 엄청난 부자2


10^1000 이하의 범위에서 정수의 나눗셈에 대한 몫과 나머지를 출력하는 문제인데, C언어로는 이러한 Bronze V의 난이도가 나올 수 없습니다. (나눗셈을 직접 구현해야 함)
+ 찾아보니 C언어가 아닌 python 기준에서 Bronze V의 난이도입니다. 따라서 이 문제는 우선 skip합니다.
+ python에서만 쉽게 해결이 가능한 긴 자리 계산 문제는 이 뒤로 모두 skip하도록 합니다. (높은 난이도 티어 문제에서 다시 다룸)

1550번 : 16진수


16진수의 정수를 입력받아 10진수로 출력하는 문제입니다.
하나의 기호를 사용하여 입력은 %x로, 출력은 %d로 바꾸어 수행해주면 됩니다.

#include<stdio.h> 

int main() { 
	int a; 
    scanf("%x", &a); 
    printf("%d", a); 
}

 

2475번 : 검증수


5개의 정수가 입력되면 이들을 각각 제곱하여 더한 수를 10으로 나눈 나머지를 검증수라고 정의할 때, 이 검증수를 계산하여 출력하는 문제입니다.

#include<stdio.h> 

int main() { 
	int sum = 0, a; 
    for(int i=0; i<5; i++) { 
    	scanf("%d", &a); 
   		sum += a*a; 
    } 
    printf("%d", sum%10); 
}

 

2557번 : Hello World


Hello World를 출력하는 문제입니다.
printf만 사용하면 됩니다.

#include<stdio.h> 

int main() { 
	printf("Hello World!"); 
}

 

2845번 : 파티가 끝나고 난 뒤


단위 면적 당 사람 수 × 넓이 = 총 사람 수이므로 다음 줄 입력에서 해당 수를 빼주면 출력 값을 얻을 수 있습니다.
배열을 사용해야 짧은 코드로 해결할 수 있습니다.

#include<stdio.h> 

int main() { 
	int a, b, c, output[10]; 
    scanf("%d %d", &a, &b); 
    for(int i=0; i<5; i++) { 
    	scanf("%d", &c); 
        output[i] = c - a*b; 
    } 
    for(int i=0; i<5; i++) printf("%d ", output[i]); 
}

 

2914번 : 저작권


문제를 자세히 읽어보면 적어도 몇 곡이 있는지 계산하기 위해서는 앨범 수 * (평균값 - 1)에 1을 더한 값이 공식임을 알 수 있습니다.
따라서 a, b로 input을 받고 a*(b-1)+1을 계산해서 출력해주면 됩니다.

#include<stdio.h> 

int main() { 
	int a, b; 
    scanf("%d %d", &a, &b); 
    printf("%d", a*(b-1) + 1); 
}

 

3003번 : 킹, 퀸, 룩, 비숍, 나이트, 폰


각 체스말의 종류에 따른 개수 차이를 출력하는 문제입니다.
입력이 6개로 고정이므로 배열을 쓰지 않아도 그냥 1-a, 1-b, 2-c, 2-d, 2-e, 8-f의 공식을 사용하면 짧게 코딩할 수 있습니다.

#include<stdio.h> 

int main() { 
	int a, b, c, d, e, f; 
    scanf("%d %d %d %d %d %d", &a, &b, &c, &d, &e, &f); 
    printf("%d %d %d %d %d %d", 1-a, 1-b, 2-c, 2-d, 2-e, 8-f); 
}

 

3046번 : R2


평균값을 이용해 역으로 원래의 수를 계산하는 문제입니다.
평균값 공식을 이용하면 R1+R2 = 2S이므로 R2 = 2S - R1으로 계산해주면 됩니다.

#include<stdio.h> 

int main() { 
	int a, b; 
    scanf("%d %d", &a, &b); 
    printf("%d", 2*b - a); 
}

 

5522번 : 카드 게임


단순한 덧셈 문제입니다.
입력 값이 5개로 고정이므로 반복문을 사용하면 편리합니다.

#include<stdio.h> 

int main() { 
	int sum = 0, a; 
    for(int i=0; i<5; i++) { 
    	scanf("%d", &a); 
        sum += a; 
    } 
    printf("%d", sum); 
}

 

 

 

반응형