๐•ƒ๐•ฆ๐•„๐•š๐•ฃ

ใ€ŒโŒจ๏ธแด„sใ€PS/๋ฐฑ์ค€_์ˆ˜ํ•™&๊ตฌํ˜„

[Baekjoon/๋ฐฑ์ค€][3052][C/C++] ๋‚˜๋จธ์ง€

by ๋ฃจ๋ฐ€๐•ƒ๐•ฆ๐•„๐•š๐•ฃ2023. 1. 31.
728x90
๋ฐ˜์‘ํ˜•
ใ€Ž๋ชฉ์ฐจใ€
0. ๊ฐœ์š”

1. ๋ฌธ์ œ
2. ํ’€์ด
3. ์ฝ”๋“œ

0. ๊ฐœ์š”

์ˆ˜ํ•™, ์‚ฌ์น™์—ฐ์‚ฐ ๋ฌธ์ œ. ๋ฐ”๋กœ ๋ฌธ์ œํ’€์ด๋กœ ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค.

1. ๋ฌธ์ œ

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

 

3052๋ฒˆ: ๋‚˜๋จธ์ง€

๊ฐ ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 39, 40, 41, 0, 1, 2, 40, 41, 0, 1์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์€ 6๊ฐœ๊ฐ€ ์žˆ๋‹ค.

www.acmicpc.net

[๋ฌธ์ œ]

๋‘ ์ž์—ฐ์ˆ˜ A์™€ B๊ฐ€ ์žˆ์„ ๋•Œ, A%B๋Š” A๋ฅผ B๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 7, 14, 27, 38์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 1, 2, 0, 2์ด๋‹ค. 

์ˆ˜ 10๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋’ค, ์ด๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

[์ž…๋ ฅ]

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ ์—ด๋ฒˆ์งธ ์ค„ ๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆซ์ž๋Š” 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๋‹ค.

[์ถœ๋ ฅ]

์ฒซ์งธ ์ค„์—, 42๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ, ์„œ๋กœ ๋‹ค๋ฅธ ๋‚˜๋จธ์ง€๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

[์˜ˆ์ œ ์ž…๋ ฅ 1]

1
2
3
4
5
6
7
8
9
10

[์˜ˆ์ œ ์ถœ๋ ฅ 1]

10

๊ฐ ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 1, 2, 3, 4, 5, 6, 7, 8, 9, 10์ด๋‹ค.

[์˜ˆ์ œ ์ž…๋ ฅ 2]

42
84
252
420
840
126
42
84
420
126

[์˜ˆ์ œ ์ถœ๋ ฅ 2]

1

๋ชจ๋“  ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 0์ด๋‹ค.

[์˜ˆ์ œ ์ž…๋ ฅ 3]

39
40
41
42
43
44
82
83
84
85

[์˜ˆ์ œ ์ถœ๋ ฅ 3]

6

๊ฐ ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 39, 40, 41, 0, 1, 2, 40, 41, 0, 1์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์€ 6๊ฐœ๊ฐ€ ์žˆ๋‹ค.

2. ํ’€์ด

42๋กœ ์–ด๋–ค์ˆ˜๋ฅผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 0~41 ์‚ฌ์ด์— ์กด์žฌํ•œ๋‹ค. ∴ ๋‚˜๋จธ์ง€์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด remainder๋ฅผ ์„ ์–ธํ•œ ๋’ค, 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ๋‚˜๋จธ์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์ค€๋‹ค. ์ด๋•Œ, ๋ฐฐ์—ด์˜ ๊ฐ’์ด 1์ด์ƒ์ธ ๊ฒƒ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์ฃผ๋ฉด, ์„œ๋กœ ๋‹ค๋ฅธ ๋‚˜๋จธ์ง€ ๊ฐ’์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

3. ์ฝ”๋“œ

#pragma warning (disable:4996)
#include <stdio.h>
#include <stdbool.h>

int main(int argc, char* argv[]) {
	int input;
	bool remainder[42]={}; //๋‚˜๋จธ์ง€์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ์ฒดํฌ.

	/* ์„œ๋กœ ๋‹ค๋ฅธ ๋‚˜๋จธ์ง€ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ */
	for (int i = 0; i < 10; i++) {
		scanf("%d", &input);
		input %= 42;
		remainder[input] = true;
	}

	/* ์ถœ๋ ฅ */
	int count = 0;
	for (int i = 0; i < 42; i++)
		if (remainder[i] == true) count++;

	printf("%d", count);

	/* ๋งˆ๋ฌด๋ฆฌ */
	return 0;
}
728x90
๋ฐ˜์‘ํ˜•