๊ณต๋ถ€/๋ฐฑ์ค€ (Baekjoon)

[๋ฐฑ์ค€/ํŒŒ์ด์ฌ] 1837๋ฒˆ: ์•”ํ˜ธ์ œ์ž‘

eunjuu 2023. 10. 4. 11:29
728x90

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๋ฌธ์ œ

์›๋ฃก์ด๋Š” ํ•œ ์ปดํ“จํ„ฐ ๋ณด์•ˆ ํšŒ์‚ฌ์—์„œ ์ผ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ๋„์ค‘, ์›๋ฃก์ด๋Š” YESWOA.COM ์œผ๋กœ๋ถ€ํ„ฐ ํ™ˆํŽ˜์ด์ง€ ์œ ์ €๋“ค์˜ ๋น„๋ฐ€ํ‚ค๋ฅผ ๋งŒ๋“ค๋ผ๋Š” ์ง€์‹œ๋ฅผ ๋ฐ›์•˜๋‹ค. ์›๋ฃก์ด๋Š” ๋น„๋ฐ€ ํ‚ค๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.

๊ฐœ์ธ๋งˆ๋‹ค ์–ด๋–ค ํŠน์ •ํ•œ ์†Œ์ˆ˜ p์™€ q๋ฅผ ์ฃผ์–ด ๋‘ ์†Œ์ˆ˜์˜ ๊ณฑ pq๋ฅผ ๋น„๋ฐ€ ํ‚ค๋กœ ๋‘์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด ์ฃผ๋ฉด ๋‘ ์†Œ์ˆ˜ p,q๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์ด์ƒ, ๋น„๋ฐ€ ํ‚ค๋ฅผ ์•Œ ์ˆ˜ ์—†๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์›๋ฃก์ด๋Š” ํ•œ ๊ฐ€์ง€ ์‚ฌ์‹ค์„ ์žŠ๊ณ  ๋ง์•˜๋‹ค. ์ตœ๊ทผ ์ปดํ“จํ„ฐ ๊ธฐ์ˆ ์ด ๋ฐœ๋‹ฌํ•จ์— ๋”ฐ๋ผ, ์†Œ์ˆ˜๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ์ปดํ“จํ„ฐ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋Œ๋ ค๋ณด์•„ ๋น„๋ฐ€ ํ‚ค๋ฅผ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์›๋ฃก์ด๋Š” ์ฃผ์„ฑ์กฐ๊ต๋‹˜๊ป˜ ๋น„๋ฐ€ ํ‚ค๋ฅผ ์ œ์ถœํ•˜๋ ค๋˜ ๋ฐ”๋กœ ์ง์ „์— ์ด ์‚ฌ์‹ค์„ ์•Œ์•„๋ƒˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‘ ์†Œ์ˆ˜ p, q ์ค‘ ํ•˜๋‚˜๋ผ๋„ K๋ณด๋‹ค ์ž‘์€ ์•”ํ˜ธ๋Š” ์ข‹์ง€ ์•Š์€ ์•”ํ˜ธ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ์ œ์ถœํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ์ด๊ฒƒ์„ ์†์œผ๋กœ ์ง์ ‘ ๊ตฌํ•ด๋ณด๋Š” ์ผ์€ ๋งค์šฐ ํž˜๋“ค ๊ฒƒ์ด๋‹ค. ๋‹น์‹ ์€ ์›๋ฃก์ด๋ฅผ ๋„์™€ ๋‘ ์†Œ์ˆ˜์˜ ๊ณฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์•”ํ˜ธ์™€ K๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ๊ทธ ์•”ํ˜ธ๊ฐ€ ์ข‹์€ ์•”ํ˜ธ์ธ์ง€ ์ข‹์ง€ ์•Š์€ ์•”ํ˜ธ์ธ์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

๐Ÿ“Ž https://www.acmicpc.net/problem/1837

 

1837๋ฒˆ: ์•”ํ˜ธ์ œ์ž‘

์›๋ฃก์ด๋Š” ํ•œ ์ปดํ“จํ„ฐ ๋ณด์•ˆ ํšŒ์‚ฌ์—์„œ ์ผ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ๋„์ค‘, ์›๋ฃก์ด๋Š” YESWOA.COM ์œผ๋กœ๋ถ€ํ„ฐ ํ™ˆํŽ˜์ด์ง€ ์œ ์ €๋“ค์˜ ๋น„๋ฐ€ํ‚ค๋ฅผ ๋งŒ๋“ค๋ผ๋Š” ์ง€์‹œ๋ฅผ ๋ฐ›์•˜๋‹ค. ์›๋ฃก์ด๋Š” ๋น„๋ฐ€ ํ‚ค๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ

www.acmicpc.net

 

  • ์–ด๋–ค ํŠน์ •ํ•œ ์†Œ์ˆ˜ p์™€ q๋ฅผ ์ฃผ์–ด ๋‘ ์†Œ์ˆ˜์˜ ๊ณฑ pq๋ฅผ ๋น„๋ฐ€ ํ‚ค
  • ๋‘ ์†Œ์ˆ˜ p, q ์ค‘ ํ•˜๋‚˜๋ผ๋„ K๋ณด๋‹ค ์ž‘์€ ์•”ํ˜ธ๋Š” ์ข‹์ง€ ์•Š์€ ์•”ํ˜ธ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ์ œ์ถœํ•˜์ง€ ์•Š๊ธฐ
  • ๋‘ ์†Œ์ˆ˜์˜ ๊ณฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์•”ํ˜ธ์™€ K๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ๊ทธ ์•”ํ˜ธ๊ฐ€ ์ข‹์€ ์•”ํ˜ธ์ธ์ง€ ์ข‹์ง€ ์•Š์€ ์•”ํ˜ธ์ธ์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑ

 

+) ์†Œ์ˆ˜๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ์ปดํ“จํ„ฐ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋Œ๋ ค๋ณด์•„ ๋น„๋ฐ€ ํ‚ค๋ฅผ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ. . . ์ด ๋ฌธ์ œ๋Š” ๋ธŒ๋ฃจํŠธ ํฌ์Šค?

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์ž…๋ ฅ

์•”ํ˜ธ P(4 ≤ P ≤ 10^100)์™€ K (2 ≤ K ≤ 10^6) ์ด ์ฃผ์–ด์ง„๋‹ค.

 

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์ถœ๋ ฅ

๋งŒ์•ฝ์— ๊ทธ ์•”ํ˜ธ๊ฐ€ ์ข‹์€ ์•”ํ˜ธ์ด๋ฉด ์ฒซ์งธ ์ค„์— GOOD์„ ์ถœ๋ ฅํ•˜๊ณ , ๋งŒ์•ฝ์— ์ข‹์ง€ ์•Š์€ ์•”ํ˜ธ์ด๋ฉด BAD์™€ ์†Œ์ˆ˜ r์„ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š”๋ฐ r์€ ์•”ํ˜ธ๋ฅผ ์ด๋ฃจ๋Š” ๋‘ ์†Œ์ˆ˜ ์ค‘ ์ž‘์€ ์†Œ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์˜ˆ์ œ


๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์ฝ”๋“œ

P, K = map(int, input().split())

for i in range(2, K):
    if P % i == 0:
        print("BAD", i)
        break
else:
    print("GOOD")

 

→ ์ž…๋ ฅ์œผ๋กœ ๋‘ ์ •์ˆ˜ P์™€ K๋ฅผ ๋ฐ›๊ณ , P๊ฐ€ 2๋ถ€ํ„ฐ K-1๊นŒ์ง€์˜ ์–ด๋–ค ์ •์ˆ˜๋กœ๋„ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ "GOOD"์„ ์ถœ๋ ฅ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด P๋ฅผ ๋‚˜๋ˆ„๋Š” ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜๋ฅผ "BAD"์™€ ํ•จ๊ป˜ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ

 

# ์ž…๋ ฅ
P, K = map(int, input().split())
  1. input() ํ•จ์ˆ˜๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. split() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ๋ถ„๋ฆฌํ•œ ํ›„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  2. map(int, ...)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„๋ฆฌ๋œ ๋‘ ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‘ ์ •์ˆ˜๊ฐ€ ๋ณ€์ˆ˜ P์™€ K์— ๊ฐ๊ฐ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

ex. ์‚ฌ์šฉ์ž๊ฐ€ "10 5"๋ผ๋Š” ์ž…๋ ฅ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด,

  1. input() ํ•จ์ˆ˜๋Š” "10 5" ๋ฌธ์ž์—ด์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  2. split() ํ•จ์ˆ˜๋Š” ์ด ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ["10", "5"]๋ผ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  3. map(int, ...)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ P์—๋Š” 10์ด, K์—๋Š” 5๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

 

for i in range(2, K):
    if P % i == 0:
        print("BAD", i)
        break
else:
    print("GOOD")

 

for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ i๋ฅผ 2๋ถ€ํ„ฐ K-1๊นŒ์ง€์˜ ์ •์ˆ˜๋กœ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ฐ i์— ๋Œ€ํ•ด์„œ, P๋ฅผ i๋กœ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋จธ์ง€๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. P % i๊ฐ€ 0์ด๋ฉด P๊ฐ€ i๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง„๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ "BAD"์™€ i์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ  ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ break ๋ฌธ์ด ์‚ฌ์šฉ๋˜์–ด ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
  2. ๋งŒ์•ฝ break ๋ฌธ์ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  for ๋ฃจํ”„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋œ๋‹ค๋ฉด, K๊นŒ์ง€ ๋‚˜๋ˆ ์ง€๋Š” ์–ด๋–ค ์ •์ˆ˜๋„ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ "GOOD"์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

ex. ์‚ฌ์šฉ์ž๊ฐ€ "10 5"๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ,

  1. P์— 10, K์— 5๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
  2. for ๋ฃจํ”„๊ฐ€ 2๋ถ€ํ„ฐ 4๊นŒ์ง€ i๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  3. i๊ฐ€ 2์ผ ๋•Œ, 10์„ 2๋กœ ๋‚˜๋ˆ„๋ฉด ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฏ€๋กœ "BAD 2"๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์ •๋‹ต ์ œ์ถœ

 

728x90