[1090] 수 나열하기 2

[입력] 시작 값(a), 등비의 값(r), 몇 번째 인지를 나타내는 정수(n)가 공백을 두고 입력된다.(모두 0 ~ 10)
[출력] n번째 수를 출력한다.

[입력 예시] 2 3 7
[출력 예시] 1458

#include <stdio.h>

int main(void) {
	long long int a = 0; // 시작 값
	int r = 0; // 등비
	int n = 0; // 정수
	scanf("%lld %d %d", &a, &r, &n);

	for (int i = 1; i < n; i++) {
		a *= r;
	}
	printf("%lld", a);
}

[1091] 수 나열하기 3

[입력] 시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째 인지를 나타내는 정수(n)가 공백을 두고 입력된다.
(a, m, d는 -50 ~ +50, n은 10이하의 자연수)
[출력] n번째 수를 출력한다.

[입력 예시] 1 -2 1 8
[출력 예시] -85

#include <stdio.h>

int main(void) {
	long long int a = 0; // 시작 값
	int m = 0; // 곱할 값
	int d = 0; // 더할 값
	int n = 0; // 정수

	scanf("%lld %d %d %d", &a, &m, &d, &n);

	for (int i = 1; i < n; i++) {
		a *= m;
		a += d;
	}
	printf("%lld", a);
}

[1092] 함께 문제 푸는 날

[입력] 같은 날 동시에 가입한 인원 3명이 규칙적으로 방문하는,
방문 주기가 공백을 두고 입력된다. (단, 입력값은 100이하의 자연수이다.)
[출력] 3명이 다시 모두 함께 방문해 문제를 풀어보는 날(동시 가입/등업 후 며칠 후?)을 출력한다.

[입력 예시] 3 7 9
[출력 예시] 63

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	int day;
	int a, b, c;
	day = 1;

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

	while (day % a != 0 || day % b != 0 || day % c != 0) day++;
	printf("%d", day);

	return 0;
}

[1093] 이상한 출석 번호 부르기 1

[입력] 첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000)
두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다.
[출력] 1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력한다.

[입력 예시]
10
1 3 2 2 5 6 7 4 5 9
[출력 예시] 1 2 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	int nums[23] = {  };
	int num1 = 0, num2 = 0;

	scanf("%d", &num1);

	for (int i = 0; i < num1; i++) {
		scanf("%d", &num2);
		if (num2 == 0)continue;
		nums[num2]++;
	}

	for (int i = 1; i <= 23; i++) {
		printf("%d ", nums[i]);
	}
	return 0;
}

[1094] 이상한 출석 번호 부르기 2

[입력] 번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다.
n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.
[출력] 출석을 부른 번호 순서를 바꾸어 공백을 두고 출력한다.

[입력 예시]
10
10 4 2 3 6 6 7 9 8 5
[출력 예시] 5 8 9 7 6 6 3 2 4 10

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	int arr[10000] = {};
	int num = 0;

	scanf("%d", &num);
	for (int i = 0; i < num; i++) {
		scanf("%d", &arr[i]);
	}

	num -= 1;
	for (; num >= 0; num--) {
		printf("%d ", arr[num]);
	}

	return 0;
}

[1095] 이상한 출석 번호 부르기 3

[입력] 번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다.
n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.
[출력] 출석을 부른 번호 중에 가장 빠른 번호를 1개만 출력한다.

[입력 예시]
10
10 4 2 3 6 6 7 9 8 5
[출력 예시] 2

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	int arr[10000] = {};
	int num = 0;

	scanf("%d", &num);

	for (int i = 0; i < num; i++) {
		scanf("%d", &arr[i]);
	}

	int temp = 24;

	for (int i = 0;i<num;i++) {
		if (temp > arr[i]) {
			temp = arr[i];
		}
	}

	printf("%d", temp);

	return 0;
}

[1096] 바둑판에 흰 돌 놓기

[입력] 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다.
둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다.
n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 같은 좌표는 입력되지 않는다.
[출력] 흰 돌이 올려진 바둑판의 상황을 출력한다.
흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다.

[입력 예시]
5
1 1
2 2
3 3
4 4
5 5
[출력 예시]
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

	int x = 0, y = 0;
	int a[20][20] = {};
	int n = 0;

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d %d", &x, &y);
		a[x][y] = 1;
	}

	for (int i = 1; i <= 19; i++) {
		for (int j = 1; j <= 19; j++) {
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	return 0;
}

[1097] 바둑알 십자 뒤집기

문제가 이해 안가서 못 풀었습니다 ㅠㅠ

[1098] 설탕과자 뽑기

[입력] 첫 줄에 격자판의 세로(h), 가로(w) 가 공백을 두고 입력되고,
두 번째 줄에 놓을 수 있는 막대의 개수(n)
세 번째 줄부터 각 막대의 길이(l), 방향(d), 좌표(x, y)가 입력된다.

입력값의 정의역은 다음과 같다.

1 <= w, h <= 100
1 <= n <= 10
d = 0 or 1
1 <= x <= 100-h
1 <= y <= 100-w
[출력] 모든 막대를 놓은 격자판의 상태를 출력한다.
막대에 의해 가려진 경우 1, 아닌 경우 0으로 출력한다.
단, 각 숫자는 공백으로 구분하여 출력한다.

[입력 예시]
5 5
3
2 0 1 1
3 1 2 3
4 1 2 5
[출력 예시]
1 1 0 0 0
0 0 1 0 1
0 0 1 0 1
0 0 1 0 1
0 0 0 0 1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
	int MAP[100][100] = {};
	int w, h;
	int n;
	int l, d, x, y;

	scanf("%d %d", &w, &h);
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d %d %d %d", &l, &d, &x, &y);
		
		if (d == 0) {
			for (int j = 0; j < l; j++) {
				MAP[x][y + j] = 1;
			}
		}
		else {
			for (int j = 0; j < l; j++) {
				MAP[x + j][y] = 1;
			}
		}
	}

	for (int i = 1; i <= w; i++) {
		for (int j = 1; j <= h; j++) {
			printf("%d ", MAP[i][j]);
		}
		printf("\n");
	}

	return 0;
}

[1099] 성실한 개미

[입력] 10*10 크기의 미로 상자의 구조와 먹이의 위치가 입력된다.
[출력] 성실한 개미가 이동한 경로를 9로 표시해 출력한다.

[입력 예시]
1 1 1 1 1 1 1 1 1 1
1 0 0 1 0 0 0 0 0 1
1 0 0 1 1 1 0 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 1 0 1 0 1
1 0 0 0 0 1 2 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1
[출력 예시]
1 1 1 1 1 1 1 1 1 1
1 9 9 1 0 0 0 0 0 1
1 0 9 1 1 1 0 0 0 1
1 0 9 9 9 9 9 1 0 1
1 0 0 0 0 0 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
	int nums[10][10] = {};
	int r = 1, d = 1;

	for (int i = 0; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			scanf("%d", &nums[i][j]);
		}
	}

	while (1) {
		if (nums[d][r] == 2) {
			nums[d][r] = 9;
			break;
		}
		nums[d][r] = 9;
		if (nums[d][r + 1] == 0 || nums[d][r + 1] == 2) {
			r++;
			if (nums[d][r] == 0) {
				nums[d][r] = 9;
			}
			else if (nums[d][r] == 2) {
				nums[d][r] = 9;
				break;
			}
		}
		else if (nums[d + 1][r] == 0 || nums[d + 1][r] == 2) {
			d++;
			if (nums[d][r] == 0) {
				nums[d][r] = 9;
			}
			else if (nums[d][r] == 2) {
				nums[d][r] = 9;
				break;
			}
		}
		else break;
	}

	for (int i = 0; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			printf("%d ", nums[i][j]);
		}
		printf("\n");
	}

	return 0;
}

태그:

Cpp

카테고리:

업데이트:

댓글남기기