Skip to content

BOJ 1004 ์–ด๋ฆฐ ์™•์ž ํ’€์ดย #5

Description

@allzeroyou

๋ฌธ์ œ ๋ถ„์„

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„(๋ฌธ์ œ ์š”์•ฝ ๋ฐ ์กฐ๊ฑด ํŒŒ์•…)

์–ด๋ฆฐ์™•์ž์˜ ์šฐ์ฃผ์„ ์€ ํ–‰์„ฑ๊ณ„ ๊ฐ„์˜ ์ด๋™์„ ์ตœ๋Œ€ํ•œ ํ”ผํ•ด์„œ ์—ฌํ–‰ํ•ด์•ผ ํ•จ.
แ„‹แ…ฅแ„…แ…ตแ†ซแ„‹แ…ชแ†ผแ„Œแ…กแ„‘แ…ฎแ†ฏแ„‹แ…ต

  • ๋นจ๊ฐ„ ์‹ค์„ : ์ถœ๋ฐœ์ ์—์„œ ๋„์ฐฉ์ ๊ฐ€์ง€ ๋„๋‹ฌํ•˜๋Š” ๋ฐ ์žˆ์–ด ํ–‰์„ฑ๊ณ„ ์ง„์ž…, ์ดํƒˆ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒฝ๋กœ
  • ์›: ํ–‰์„ฑ๊ณ„์˜ ๊ฒฝ๊ณ„

์ ์–ด๋„ 3๋ฒˆ์˜ ํ–‰์„ฑ๊ณ„ ์ง„์ž…/์ดํƒˆ ํ•„์š”

โ†’ ์€ํ•˜์ˆ˜ ์ง€๋„, ์ถœ๋ฐœ์ , ๋„์ฐฉ์ ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์–ด๋ฆฐ ์™•์ž์—๊ฒŒ ํ•„์š”ํ•œ ์ตœ์†Œ์˜ ํ–‰์„ฑ๊ณ„ ์ง„์ž…/์ดํƒˆ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ.

ํ–‰์„ฑ๊ณ„ ๊ฒฝ๊ณ„๊ฐ€ ๋งž๋‹ฟ๊ฑฐ๋‚˜ ์„œ๋กœ ๊ต์ฐจํ•˜๋Š” ๊ฒฝ์šฐ, ์ถœ๋ฐœ์ /๋„์ฐฉ์ ์ด ํ–‰์„ฑ๊ณ„ ๊ฒฝ๊ณ„์— ๊ฑธ์ณ์ง„ ๊ฒฝ์šฐ x

  • ์ž…๋ ฅ

์ฒซ๋ฒˆ์งธ ์ค„) ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜ T

๊ทธ ๋‹ค์Œ ์ค„) ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ์ฒซ์งธ ์ค„์— ์ถœ๋ฐœ์ (x1, y1)๊ณผ ๋„์ฐฉ์ (x2, y2) ์ฃผ์–ด์ง.

๋‘๋ฒˆ์งธ ์ค„) ํ–‰์„ฑ๊ณ„ ๊ฐœ์ˆ˜ n

์„ธ๋ฒˆ์งธ ์ค„~n๋ฒˆ์งธ ์ค„) ํ–‰์„ฑ๊ณ„ ์ค‘์ ๊ณผ ๋ฐ˜์ง€๋ฆ„(cx, cy, r)

  • ์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ํ–‰์„ฑ๊ณ„ ์ง„์ž…/์ดํƒˆ ํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’.

  • ์ œํ•œ
    • 1000 โ‰ค x1, y1, x2, y2, cx, cyย โ‰ค 1000
    • 1 โ‰ค r โ‰ค 1000
    • 1 โ‰ค n โ‰ค 50
    • ์ขŒํ‘œ์™€ ๋ฐ˜์ง€๋ฆ„์€ ๋ชจ๋‘ ์ •์ˆ˜

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„ (๋ฌธ์ œ ํ•ต์‹ฌ ํŒŒ์•…)

์ตœ๋Œ€ํ•œ ์›์„ ์•ˆ ๋‹ฟ๊ฒŒ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

๋”ฐ๋ผ์„œ ์–ด๋–ค ๊ฒฝ์šฐ์— ๋ฐ˜๋“œ์‹œ ์›์„ ์ง€๋‚˜์•ผ ํ•˜๋Š”์ง€, ์ง€๋‚˜์ง€ ์•Š์•„๋„ ๋˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด์ž.

  1. ์‹œ์ž‘์ , ์ถœ๋ฐœ์ ์ด ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ํ–‰์„ฑ๊ณ„ ๋‚ด๋ถ€์— ์žˆ์„ ๊ฒฝ์šฐ

    ํ•ด๋‹น ํ–‰์„ฑ๊ณ„๋ฅผ ๋ฐ˜๋“œ์‹œ ์ง€๋‚˜๊ฐ€์•ผ ํ•จ.

  2. ์‹œ์ž‘์ , ์ถœ๋ฐœ์ ์ด ๋‘˜ ๋‹ค ํ–‰์„ฑ๊ณ„ ๋‚ด๋ถ€ or ์™ธ๋ถ€์— ์žˆ์„ ๊ฒฝ์šฐ

    ํ–‰์„ฑ๊ณ„๋ฅผ ์•ˆ ์ง€๋‚˜๊ฐ€๋„ ๋จ.

๊ทธ๋ ‡๋‹ค๋ฉด, ์›์˜ ๋‚ด๋ถ€์— ์ ์ด ์žˆ๋Š”์ง€ ์•„๋‹Œ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•?

ํ–‰์„ฑ๊ณ„ ์ค‘์ ๊ณผ ์‹œ์ž‘์  or ์ถœ๋ฐœ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ > ๋ฐ˜์ง€๋ฆ„ : ํ–‰์„ฑ๊ณ„ ์™ธ๋ถ€์˜ ์ .

ํ–‰์„ฑ๊ณ„ ์ค‘์ ๊ณผ ์‹œ์ž‘์  or ์ถœ๋ฐœ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ < ๋ฐ˜์ง€๋ฆ„ : ํ–‰์„ฑ๊ณ„ ๋‚ด๋ถ€์˜ ์ .

โ†’ ๋ชจ๋“  ์›์— ๋Œ€ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์ง€๋‚˜์•ผ ํ•˜๋Š” ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ , ์ง€๋‚˜์•ผ ํ•˜๋Š” ์›์˜ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ.

์ฝ”๋“œ ์ž‘์„ฑ

import math

t = int(input())

for _ in range(t):  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค
    # ์ถœ๋ฐœ์ (x1, y1)๊ณผ ๋„์ฐฉ์ (x2, y2)
    x1, y1, x2, y2 = map(int, input().split())

    n = int(input())  # ํ–‰์„ฑ๊ณ„ ๊ฐœ์ˆ˜
    ans = 0  # ์›์„ ์ง€๋‚˜๋Š” ๊ฐœ์ˆ˜

    for _ in range(n):
        cx, cy, r = map(int, input().split())
        # ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ
        start_to_mid = math.sqrt((x1 - cx) ** 2 + (y1 - cy) ** 2)
        fin_to_mid = math.sqrt((x2 - cx) ** 2 + (y2 - cy) ** 2)
        # ํ–‰์„ฑ๊ณ„ ๋‚ด๋ถ€์˜ ์ 
        # ์ถœ๋ฐœ์ 
        if start_to_mid < r and fin_to_mid < r:  # ๋‘˜๋‹ค ์•ˆ์— ์žˆ์„ ๊ฒฝ์šฐ ํ–‰์„ฑ๊ณ„๋ฅผ ์•ˆ์ง€๋‚˜๊ฐ€๋„ ๋จ.
            pass
        elif start_to_mid < r:
            ans += 1
        elif fin_to_mid < r:
            ans += 1
    print(ans)

๋А๋‚€์ 

1. or์˜ ํ—ˆ์ (?)

import math

t = int(input())

for _ in range(t):  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค
    # ์ถœ๋ฐœ์ (x1, y1)๊ณผ ๋„์ฐฉ์ (x2, y2)
    x1, y1, x2, y2 = map(int, input().split())

    n = int(input())  # ํ–‰์„ฑ๊ณ„ ๊ฐœ์ˆ˜
    # ์ง€๋‚˜์•ผ ํ•˜๋Š” ์›์˜ ๊ฐœ์ˆ˜
    ans = 0
    for _ in range(n):
        cx, cy, r = map(int, input().split())
        # ํ–‰์„ฑ๊ณ„ ๋‚ด๋ถ€์˜ ์ 
        if math.sqrt((x1 - cx) ** 2 + (y1 - cy) ** 2) < r or math.sqrt((x2 - cx) ** 2 + (y2 - cy) ** 2) < r:
            ans += 1
    print(ans)

์œ„์™€ ๊ฐ™์ด ์ฒ˜์Œ์—๋Š” ํ–‰์„ฑ๊ณ„ ๋‚ด๋ถ€์˜ ์ ์˜ ์กฐ๊ฑด์‹์„ or๋กœ ํ–ˆ๋Š”๋ฐ, ํ‹€๋ ธ๋‹ค๊ณ  ํ•ด์„œ ์˜์•„ํ–ˆ๋‹ค.

์™œ์ง€? ํ•œ 20๋ถ„ ๊ณ ๋ฏผํ–ˆ๋‚˜..

or์ด๋ฉด ์กฐ๊ฑด์‹1์ด ์ฐธ์ด๊ฑฐ๋‚˜ ์กฐ๊ฑด์‹2์ด ์ฐธ์ด๊ฑฐ๋‚˜ ํ˜น์€ ๋‘˜๋‹ค ์ฐธ์ผ๋•Œ๋„ ์ฐธ์ธ๊ฑฐ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ๊ฐ์„ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๊ฑธ์–ด์ฃผ๊ณ , and ์กฐ๊ฑด์ผ๋•Œ๋Š” pass ์‹œ์ผœ์•ผ ํ•จ์„ ๊นจ๋‹ฌ์•˜๋‹ค.

๊ธฐ๋ณธ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๋‹ˆ๊นŒ..
2. ๊ทธ๋ฆผ ๋ณด๊ณ  ์ซ„์ง€ ๋ง๊ณ  ์ด์šฉํ•  ๊ฐœ๋… ์ƒ๊ฐํ•ด๋ณด๊ธฐ
๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ ๊ทธ๋ฆผ๋ณด๊ณ  ์ซ„์•˜๋Š”๋ฐ(์›๊ณผ ๊ณก์„ ) ps์—์„œ ์‚ฌ์šฉ๋œ ๊ฐœ๋…์€ ์ˆ˜ํ•™์—์„œ ๊ธฐ์ดˆ์ ์ธ ๋‘ ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ ๋ฟ์ด๋‹ค. ์ซ„์ง€ ๋ง์ž.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions