Cain Calendar

Transformed version of Calculate Date

๋‚ ์งœ ๊ณ„์‚ฐ ๋ฌธ์ œ์™€ ๊ฑฐ์˜ ๋น„์Šทํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์ด Brute Force ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ƒ๊ฐํ•ด๋ณด์ž.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ๊ฐ

  1. ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด๋ณธ๋‹ค. M๊ณผ N์€ 40,000์ดํ•˜์ด๊ณ , ์ด ๋‘˜์˜ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์€ 16*10^8 = 16์–ต(์•ฝ 16์ดˆ) > O(1์–ต=1์ดˆ) ์ด๋ฏ€๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ด์•ผํ•œ๋‹ค.=>๊ฑด๋„ˆ๋›ฐ๋ฉฐ ํ•ด๋ณด๋Š” ๋ฐฉ๋ฒ•!

  2. M=5, N=7, <3,6>๋Š” ๋ช‡๋ฒˆ์งธ ํ•ด์ธ๊ฐ€? x(3)์€ M(5)๋งŒํผ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

1

<1,1>

6

<1,6>

11

<1,4>

16

<1,2>

21

<1,7>

26

<1,5>

31

<1,3>

2

<2,2>

7

<2,7>

12

<2,5>

17

<2,3>

22

<2,1>

27

<2,6>

32

<2,4>

3

<3,3>

8

<3,1>

13

<3,1>

18

<3,4>

23

<3,2>

28

<3,7>

33

<3,5>

4

<4,4>

9

<4,2>

14

<4,2>

19

<4,5>

24

<4,3>

29

<4,1>

34

<3,6>

5

<5,6>

10

<5,3>

15

<5,3>

20

<5,6>

25

<5,4>

30

<5,2>

35

<5,7>

3. ๋‚ ์งœ ๊ณ„์‚ฐ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ž…๋ ฅ๋ฐ›์€ <x,y>๋ฅผ ๊ฐ๊ฐ -1์”ฉ ํ•ด์„œ M๊ณผ N์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ ๋‚˜๋จธ์ง€+1์ด ์ •๋‹ต์ด ๋œ๋‹ค.

0

<0,0>

5

<0,5>

10

<0,3>

15

<0,1>

20

<0,6>

25

<0,4>

30

<0,2>

1

<1,1>

6

<1,6>

11

<1,4>

16

<1,2>

21

<1,0>

26

<1,5>

31

<1,3>

2

<2,2>

7

<2,0>

12

<2,5>

17

<2,3>

22

<2,1>

27

<2,6>

32

<2,4>

3

<3,3>

8

<3,1>

13

<3,6>

18

<3,4>

23

<3,2>

28

<3,0>

33

<3,5>

4

<4,4>

9

<4,2>

14

<4,0>

19

<4,5>

24

<4,3>

29

<4,1>

34

<4,6>

ex) x = 3, y = 2 -> <2,1> : x๊ฐ€ 2์ธ ๊ฒƒ๋“ค์„ ์ฐพ๋Š”๋‹ค. 2์ธ x์— ๋Œ€ํ•ด y์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” n๊ฐ€์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค. i%n == y ์ธ i๋ฅผ ์ฐพ๋Š”๋‹ค.

for (int k=x; k<(n*m); k+=m) {
    if (k%n == y) {
        System.out.println(k+1);
        ok = true;
        break;
    }
}

Last updated