๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm

[๋ฐฑ์ค€/C++] 3025๋ฒˆ : ๋‚˜๋จธ์ง€

by nitronium102 2021. 7. 4.

๋ฌธ์ œ

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

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

์ž…๋ ฅ

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

์ถœ๋ ฅ

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

ํ’€์ด

1. 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ remainder ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ 42๋กœ ์„ค์ •ํ•˜๊ณ  0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

2. ๋ฐฐ์—ด ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ sum์„ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ํ›„์œ„์—ฐ์‚ฐ์ž๋กœ ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

์ดํ›„์— ์ค‘๋ณต๋œ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค๋ฉด if๋ฌธ์— ํ•ด๋‹น๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐˆ ๊ฒƒ์ด๋‹ค. 

#include <iostream>
using namespace std;

int main(){
    int num, sum = 0;
    int remainder[42]={0, };
    
    for (int i = 0; i<10; i++){
        cin >> num;
        // ๋ฐฐ์—ด ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
        if (!remainder[num%42]++)
            sum++;
    }
    cout<<sum;
    return 0;
}

 

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

 

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

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

www.acmicpc.net


์ฒ˜์Œ์— ์ฝ”๋“œ๋ฅผ ์งฐ์„ ๋•Œ๋Š” !remainder[num%42]๋ฅผ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•ด์„œ for๋ฌธ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์—ˆ๋‹ค! ๊ทธ๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ ธ์„œ ์ฐฉ์žกํ•œ ๋งˆ์Œ์œผ๋กœ ์ด๋ฆฌ์ €๋ฆฌ ๊ณ ์ณค๋‹คใ…Ž...

๋Œ“๊ธ€