๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“• STUDY/Algorithm

[C / C++] ๋ฐฑ์ค€ 1244๋ฒˆ - ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ

๋ฐฑ์ค€ 1748๋ฒˆ : https://www.acmicpc.net/problem/1244

 

1244๋ฒˆ: ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ

์ฒซ์งธ ์ค„์—๋Š” ์Šค์œ„์น˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์Šค์œ„์น˜ ๊ฐœ์ˆ˜๋Š” 100 ์ดํ•˜์ธ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ ์Šค์œ„์น˜์˜ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ผœ์ ธ ์žˆ์œผ๋ฉด 1, ๊บผ์ ธ์žˆ์œผ๋ฉด 0์ด๋ผ๊ณ  ํ‘œ์‹œํ•˜๊ณ  ์‚ฌ์ด์— ๋นˆ์นธ์ด ํ•˜๋‚˜์”ฉ

www.acmicpc.net


โœ… ๋ฌธ์ œ ์„ค๋ช…

 

๋จผ์ € ์Šค์œ„์น˜ ๊ฐœ์ˆ˜ N์„ ์ž…๋ ฅํ•˜๊ณ , ์Šค์œ„์น˜ N๊ฐœ์˜ ์ƒํƒœ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. (์ƒํƒœ 1 - ์ผœ์ง / 0 - ๊บผ์ง)

๊ทธ ํ›„ ๋ฝ‘์„ ํ•™์ƒ์˜ ์ˆ˜ M์„ ์ž…๋ ฅํ•˜๊ณ , ํ•™์ƒ์˜ ์„ฑ๋ณ„๊ณผ ์ง€์ • ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ž…๋ ฅํ•œ๋‹ค. (1 - ๋‚จ์ž / 2 - ์—ฌ์ž)

 

๐ŸŒˆ ๋‚จํ•™์ƒ์˜ ์Šค์œ„์น˜ ๋ณ€๊ฒฝ๋ฐฉ๋ฒ•

์ง€์ • ์ˆซ์ž์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋Š” ์ˆซ์ž์˜ ์Šค์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

ex) ์ง€์ •์ˆซ์ž = 3 โฉ (3, 6, 9 ... < N)

N๋ณด๋‹ค ์ž‘์€ ์ˆ˜ ์ค‘์— ์ž์‹ ์—๊ฒŒ ๋ฐฐ์ •๋œ ์ˆซ์ž์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋Š” ๋ชจ๋“  ์Šค์œ„์น˜๋ฅผ 1์€ 0์œผ๋กœ 0์€ 1๋กœ ๋ฐ”๊พผ๋‹ค.

 

โšก ๋ณ€๊ฒฝ ์ „

โšก ๋ณ€๊ฒฝ ํ›„

 

๐ŸŒˆ ์—ฌํ•™์ƒ์˜ ์Šค์œ„์น˜ ๋ณ€๊ฒฝ๋ฐฉ๋ฒ•

์ง€์ • ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒ์šฐ๊ฐ€ ๋Œ€์นญ์ด๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์€ ์Šค์œ„์น˜๋ฅผ ํฌํ•จํ•˜๋Š” ๊ตฌ๊ฐ„ ์„ ์ฐพ์•„ ์Šค์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

1. ๋งŒ์•ฝ ์ง€์ • ์ˆซ์ž ์–‘์ชฝ์ด ๊ฐ™๋‹ค๋ฉด?

ex) ์ง€์ •์ˆซ์ž = 6

 

5 VS 7 : ๊ฐ™๋‹ค๋ฉด?

โฉ 4 VS 8 : ๊ฐ™๋‹ค๋ฉด?

โฉ 3 VS 9 : ๋‹ค๋ฅด๋‹ค๋ฉด?

โฉ 4 ~ 8 ๋ฒˆ์— ํ•ด๋‹น๋˜๋Š” ๋ชจ๋“  ์Šค์œ„์น˜๋ฅผ 1์€ 0์œผ๋กœ 0์€ 1๋กœ ๋ณ€๊ฒฝ

 

โšก ๋ณ€๊ฒฝ ์ „

โšก ๋ณ€๊ฒฝ ํ›„

 

2. ๋งŒ์•ฝ ์ง€์ • ์ˆซ์ž ์–‘์ชฝ๋ถ€ํ„ฐ ๋‹ค๋ฅด๋‹ค๋ฉด?

โšก ๋ณ€๊ฒฝ ์ „

โšก ๋ณ€๊ฒฝ ํ›„

์ง€์ • ์ˆซ์ž์˜ ์Šค์œ„์น˜๋งŒ ๋ณ€๊ฒฝํ•˜๊ณ  ๋!


โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช…

์ฒ˜์Œ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด์ž๋งˆ์ž ์žฌ๊ท€๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฐ€๋ณ๊ฒŒ(?) ์žฌ๊ท€๋กœ ์‹œ์ž‘,,

1. ๋จผ์ € ์Šค์œ„์น˜์˜ ๊ฐœ์ˆ˜ N์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
2. ๋ฌธ์ œ์—์„œ ์Šค์œ„์น˜๊ฐ€ ๊ฐœ์ˆ˜๊ฐ€ 100๊ฐœ ์ดํ•˜๋ผ๊ณ  ์ง€์ •ํ–ˆ๊ณ ,
์Šค์œ„์น˜์˜ ๋ฒˆํ˜ธ๋ฅผ 0๋ฒˆ์ด ์•„๋‹Œ 1๋ฒˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ
101๊ฐœ์˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์—ฌ 1๋ฒˆ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ–ˆ๋‹ค.
3. ํ•™์ƒ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
4. ํ•™์ƒ์˜ ์„ฑ๋ณ„๊ณผ ์ง€์ •์ˆซ์ž๋ฅผ ์ฐจ๋ก€๋กœ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
5. ํ•™์ƒ์˜ ์„ฑ๋ณ„๊ณผ ์ง€์ •์ˆซ์ž๋ฅผ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋‚จ์ž์ผ ๋•Œ์™€ ์—ฌ์ž์ผ ๋•Œ๋ฅผ ๋‚˜๋ˆ  ๊ฐ๊ฐ์˜ ํ•จ์ˆ˜๋กœ ๋ณด๋‚ด ๊ณ„์‚ฐํ•œ๋‹ค.

 

๐ŸŒˆ ๋‚จํ•™์ƒ์˜ ๊ฒฝ์šฐ (์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋‚จํ•™์ƒ์€ ๋‹จ์ˆœํ•˜๊ฒŒ ์ง€์ •์ˆซ์ž์˜ ๋ฐฐ์ˆ˜๋งŒ ๊ตฌํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์—

ํ˜„์žฌ ์ธ๋ฑ์Šค๊ฐ€ N๋ณด๋‹ค ์ปค์ง€๋ฉด ์ข…๋ฃŒํ•˜๋Š” ์กฐ๊ฑด์œผ๋กœ ๊ณ„์†ํ•ด์„œ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์Šค์œ„์น˜์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค.

index = i * num ์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ํ•จ์ˆ˜์— i+1์„ ์ „ํ•ด์ฃผ๋ฉด

index = 1 * num / 2 * num / 3 * num,,, ์ด๋Ÿฐ์‹์œผ๋กœ ๊ณ„์†ํ•ด์„œ num์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์ „๋‹ฌ๋˜๊ฒŒ ๋œ๋‹ค.

 

๐ŸŒˆ ์—ฌํ•™์ƒ์˜ ๊ฒฝ์šฐ (์•Œ๊ณ ๋ฆฌ์ฆ˜)

์—ฌํ•™์ƒ์€ ์ง€์ • ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์†ํ•ด์„œ ์–‘์ชฝ์„ ๋น„๊ตํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—,

์–‘์ชฝ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์ด์ „๊นŒ์ง€์˜ ์Šค์œ„์น˜(๊ฐ™์•˜๋˜ ์Šค์œ„์น˜)๋งŒ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ  ์ข…๋ฃŒํ•˜๋Š” ์กฐ๊ฑด์œผ๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

i = 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ง€์ • ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ -1, +1๋ฒˆ์งธ์˜ ์Šค์œ„์น˜ ๋น„๊ต

โฉ ๊ฐ™์œผ๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜๋กœ i+1์„ ๋ณด๋‚ด ์ง€์ • ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ -2, +2 ๋ฒˆ์งธ ์Šค์œ„์น˜ ๋น„๊ต

โฉ ๋‹ค๋ฅผ ๋•Œ๊นŒ์ง€ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ i+x๋ฅผ ๋ณด๋‚ด -x, +x๋ฒˆ์งธ ์Šค์œ„์น˜๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณต

โฉ ๋‹ค๋ฅธ ์ˆœ๊ฐ„ ์Šค์œ„์น˜์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๊ณ  ์ข…๋ฃŒ


โœ… ์ฝ”๋“œ