Algorithm Problem/Python

[python] SWEA - 6019. ๊ธฐ์ฐจ ์‚ฌ์ด์˜ ํŒŒ๋ฆฌ

deo2kim 2020. 9. 18. 20:21
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

D3 | ์ˆ˜ํ•™?

 

ํŒŒ๋ฆฌ์™€ ๋งž์€ ํŽธ ๊ธฐ์ฐจ๊ฐ€ ๋งŒ๋‚˜๋Š” ์‹œ๊ฐ„์€ t ๋กœ ๊ฐ™๋‹ค

ํŒŒ๋ฆฌ์™€ ๋งž์€ ํŽธ ๊ธฐ์ฐจ๊ฐ€ ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์€ D ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ์ €๋ ‡๊ฒŒ ์‹์„ ๊ณ„์‚ฐ ํ•ด๋ณด๋ฉด ํŒŒ๋ฆฌ๊ฐ€ ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ๋Š”

 

ํŒŒ๋ฆฌ๊ฐ€ ์ด๋™ํ•œ๊ฑฐ๋ฆฌ๋Š” ๋”ฐ๋กœ ๋ˆ„์ ํ•ด์ฃผ๊ณ ,

ํŒŒ๋ฆฌ์˜ ์†๋ ฅ๊ณผ ์ด๋™ํ•œ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์‹œ๊ฐ„์„ ๊ตฌํ•ด์ฃผ๊ณ 

๊ตฌํ•œ ์‹œ๊ฐ„์œผ๋กœ ๊ธฐ์ฐจ์˜ ์ด๋™๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์ค€๋‹ค.

๊ทธ๋Ÿผ ๋‚จ์€ ๊ธฐ์ฐจ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์€ (๊ธฐ์กด์˜ ๊ธฐ์ฐจ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ - ๋‘ ๊ธฐ์ฐจ์˜ ์ด๋™๊ฑฐ๋ฆฌ)

 

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

 if __name__ == "__main__":
    T = int(input())
    for tc in range(1, 1 + T):
        # ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ, A ์†๋ ฅ, B ์†๋ ฅ, ํŒŒ๋ฆฌ ์†๋ ฅ
        D, A, B, F = map(int, input().split())

        # s = v*t ํŒŒ๋ฆฌ๊ฐ€ ๋‚ ์•„๊ฐ„ ๊ฑฐ๋ฆฌ
        fly_d = 0

        idx = 0
        while D >= 10**(-6):
            # ์˜ค๋ฅธ์ชฝ ๋‚ ์•„๊ฐ€๊ธฐ
            if idx % 2 == 0:
                d = (D * B * F) / (F * (B + F))
                fly_d += d

            # ์™ผ์ชฝ ๋‚ ์•„๊ฐ€๊ธฐ
            else:
                d = (D * A * F) / (F * (A + F))
                fly_d += d
            t = d / F
            D -= (A + B) * t

        print(f'#{tc} {fly_d}')

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: SW Expert Academy

๋งํฌ: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWajaTmaZw4DFAWM

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


[๋ฌธ์ œ]

๊ถ๊ธˆ์ฆ์ด ๋งŽ์€ ํ•œ ์†Œ๋…€๋Š” ์กด ํฐ ๋…ธ์ด๋งŒ(John von Neumann)์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์งˆ๋ฌธํ–ˆ๋‹ค.

“๋‘ ๊ธฐ์ฐจ A, B๊ฐ€ ์„œ๋กœ๋ฅผ ํ–ฅํ•ด ๋‹ฌ๋ฆฌ๊ณ  ์žˆ๋‹ค. ๋‘ ๊ธฐ์ฐจ์˜ ์ „๋ฉด๋ถ€๋Š” 250๋งˆ์ผ ๋–จ์–ด์ ธ ์žˆ๊ณ  ๊ธฐ์ฐจ A๋Š” ์‹œ์† 10๋งˆ์ผ, B๋Š” ์‹œ์† 15๋งˆ์ผ๋กœ

๋‹ฌ๋ฆฌ๊ณ  ์žˆ๋‹ค.

ํŒŒ๋ฆฌ๊ฐ€ ๊ธฐ์ฐจ A์˜ ์ „๋ฉด๋ถ€์—์„œ ๊ธฐ์ฐจ B๋กœ ์‹œ์† 20๋งˆ์ผ์˜ ์†๋ ฅ์œผ๋กœ ๋‚ ์•„๊ฐ„๋‹ค. ํŒŒ๋ฆฌ๊ฐ€ ๊ธฐ์ฐจ B์˜ ์ „๋ฉด๋ถ€์— ๋‹ฟ์œผ๋ฉด ๋ฐ”๋กœ ๋ฐฉํ–ฅ์„ ๋ฐ”๊ฟ”

๊ธฐ์ฐจ A๋ฅผ ํ–ฅํ•ด ๊ฐ™์€ ์†๋ ฅ์œผ๋กœ ๋‚ ์•„๊ฐ„๋‹ค.

๊ทธ๋Ÿฌ๋‹ค ๊ธฐ์ฐจ A์™€ B๊ฐ€ ์ถฉ๋Œํ•˜๋ฉด ํŒŒ๋ฆฌ๋Š” ์ฃฝ์„ ๊ฒƒ์ด๋‹ค. ํŒŒ๋ฆฌ๋Š” ์ฃฝ๊ธฐ ์ „ ๊นŒ์ง€ ๋ช‡ ๋งˆ์ผ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ด๋™ํ–ˆ์„๊นŒ?”



ํฐ ๋…ธ์ด๋งŒ์€ ์†Œ๋…€์˜ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ์ฆ‰์‹œ ๋ฌดํ•œ ๊ธ‰์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‹ต์ด 200๋งˆ์ผ์ด๋ผ๋Š” ๊ฒƒ์„ ๊ณ„์‚ฐํ•ด๋ƒˆ๋‹ค.

์†Œ๋…€๊ฐ€ ์งˆ๋ฌธํ•œ ๋ฌธ์ œ์˜ ์กฐ๊ธˆ ๋” ์ผ๋ฐ˜ํ™”๋œ ๋ฒ„์ „์„ ํ•ด๊ฒฐํ•ด๋ณด์ž.


[์ž…๋ ฅ]

์ฒซ ๋ฒˆ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ๋„ค ์ •์ˆ˜ D, A, B, F (1 ≤ D ≤ 103, 1 ≤ A ≤ B ๏ผœ F ≤ 102) ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

D๋Š” ๋‘ ๊ธฐ์ฐจ ์ „๋ฉด๋ถ€ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ, A๋Š” ๊ธฐ์ฐจ A์˜ ์†๋ ฅ, B๋Š” ๊ธฐ์ฐจ B์˜ ์†๋ ฅ, F๋Š” ํŒŒ๋ฆฌ์˜ ์†๋ ฅ์ด๋‹ค.


[์ถœ๋ ฅ]

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ‘#t’(t๋Š” ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค)๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ํ•œ ์นธ์„ ๋„์šด ํ›„,

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ํŒŒ๋ฆฌ๊ฐ€ ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋‹ต๊ณผ์˜ ์ ˆ๋Œ€์˜ค์ฐจ๋‚˜ ์ƒ๋Œ€์˜ค์ฐจ๊ฐ€ 10-6 ์ดํ•˜์ด๋ฉด ์ •๋‹ต์œผ๋กœ ์ธ์ •ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•