2023. 4. 20. 22:20ㆍ스키마에듀 c언어 수업
https://www.acmicpc.net/problem/2669
2669번: 직사각형 네개의 합집합의 면적 구하기
평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으
www.acmicpc.net
https://www.acmicpc.net/problem/27961
#include <stdio.h>
int main(void) {
int x, y, l, h;
int k, i, j;
int sum=0;
int map[101][101]={0,};
for(k=0;k<4;k++){
scanf("%d %d %d %d", &x, &y, &l, &h);
for(i=x;i<l;i++){
for(j=y;j<h;j++){
map[j][i] = 1;
}
}
}
for(i=0;i<101;i++){
for(j=0;j<101;j++){
if(map[i][j] == 1){
sum++;
}
}
}
printf("%d", sum);
}
27961번: 고양이는 많을수록 좋다
올바른 행동 순서가 될 수 있는 하나의 예시는 아래와 같으며, $4$번보다 더 작은 행동 횟수로 $6$마리의 고양이를 마도카의 집에 들이는 것은 불가능하다. 초기 상태($0$마리) $\rightarrow$ 생성
www.acmicpc.net
#include <stdio.h>
int main() {
long long n;
scanf("%lld", &n); // 입력 받은 숫자 n을 저장
long long cnt = 0; // 고양이가 있는 수
int ans = 0; // 사용한 마법 횟수
while (cnt < n) {
ans++; // 마법을 사용한 횟수 증가
if (cnt == 0) {
cnt = 1; // 고양이가 없으면 1마리 생성
} else {
cnt *= 2; // 현재 고양이 수의 2배 만큼 복제
}
}
printf("%d\n", ans); // 사용한 마법 횟수 출력
return 0;
}
https://www.acmicpc.net/problem/27960
27960번: 사격 내기
A, B, C는 올해에도 예비군 훈련을 받으러 간다. 이번 예비군 훈련 과정 중에는 영점 사격이 있으며, 10개의 과녁 각각에 점수를 매겨 맞춘 과녁 점수의 총합을 측정한다. 과녁을 맞혔을 때, 과녁별
www.acmicpc.net
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
int c = (a^b); // C 점수 계산
printf("%d\n", c);
return 0;
}
https://www.acmicpc.net/problem/2529
10진수를 2진수로 바꿔서 생각
1점 / 2점 / 4점 / 8점 / 16점/ 32점 / 64점 / 128점 / 256점 / 512점
512 / 256 / 128 / 64 / 32 / 16 / 8 / 4 / 2/ 1
55 = 1 1 0 1 1 1 A가 맞춘 과녁- 32점, 16점, 4점, 2점, 1점
73 = 1 0 0 1 0 0 1 B가 맞춘 과녁- 64점, 8점, 1점
64 / 32 /16 / 8 / 4 / 2 / 1
xor연산
1 1 1 1 1 0 -> A와 B 중 둘 중 한 명만 맞힌 표적 ->10진수로 바꾸면 => C의 점수

2529번: 부등호
여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력
www.acmicpc.net
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 10
int n;
char paren[MAX_SIZE];
int visited[MAX_SIZE] = {0};
char result_max[MAX_SIZE + 1] = {'\0'};
char result_min[MAX_SIZE + 1] = {'\0'};
void dfs(int cnt, char num[MAX_SIZE + 1]) {
if (strlen(num) == n + 1) {
if (strcmp(result_max, num) < 0)
strcpy(result_max, num);
if (strcmp(result_min, num) > 0 || strlen(result_min) == 0)
strcpy(result_min, num);
return;
}
for (int i = 0; i < 10; i++) {
if (visited[i] == 1)
continue;
if (cnt == 0 || (paren[cnt-1] == '<' && num[cnt-1] < i + '0') ||
(paren[cnt-1] == '>' && num[cnt-1] > i + '0')) {
visited[i] = 1;
num[cnt] = i + '0';
dfs(cnt + 1, num);
visited[i] = 0;
num[cnt] = '\0';
}
}
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf(" %c", &paren[i]);
}
char num[MAX_SIZE + 1] = {'\0'};
dfs(0, num);
printf("%s\n%s\n", result_max, result_min);
return 0;
}
'스키마에듀 c언어 수업' 카테고리의 다른 글
0505 스키마에듀 수업준비 (0) | 2023.05.05 |
---|---|
0429 스키마에듀 수업 (0) | 2023.04.28 |
0408 스키마에듀 백준 3문제 (0) | 2023.04.07 |
스키마에듀 백준 3문제 (0) | 2023.03.31 |
스키마에듀 0325 백준 3문제 (0) | 2023.03.23 |