๐Ÿ–ฅ๏ธ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Python

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [Python] [PCCE ๊ธฐ์ถœ๋ฌธ์ œ] 9๋ฒˆ / ์ง€ํ ์ ‘๊ธฐ

rtw0202 2025. 9. 17. 11:15

1. ๋ฌธ์ œ ์„ค๋ช…

๋ฏผ์ˆ˜๋Š” ๋‹ค์–‘ํ•œ ์ง€ํ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ์ทจ๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€ํ๋งˆ๋‹ค ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ ์ง€๊ฐ‘์— ๋„ฃ์œผ๋ ค๋ฉด ์—ฌ๋Ÿฌ ๋ฒˆ ์ ‘์–ด์„œ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง€๊ฐ‘์˜ ํฌ๊ธฐ๊ฐ€ 30 * 15์ด๊ณ  ์ง€ํ์˜ ํฌ๊ธฐ๊ฐ€ 26 * 17์ด๋ผ๋ฉด ํ•œ๋ฒˆ ๋ฐ˜์œผ๋กœ ์ ‘์–ด 13 * 17 ํฌ๊ธฐ๋กœ ๋งŒ๋“  ๋’ค 90๋„ ๋Œ๋ ค์„œ ์ง€๊ฐ‘์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€ํ๋ฅผ ์ ‘์„ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์ง€ํ‚ต๋‹ˆ๋‹ค.

  • ์ง€ํ๋ฅผ ์ ‘์„ ๋•Œ๋Š” ํ•ญ์ƒ ๊ธธ์ด๊ฐ€ ๊ธด ์ชฝ์„ ๋ฐ˜์œผ๋กœ ์ ‘์Šต๋‹ˆ๋‹ค. 
  • ์ ‘๊ธฐ ์ „ ๊ธธ์ด๊ฐ€ ํ™€์ˆ˜์˜€๋‹ค๋ฉด ์ ‘์€ ํ›„ ์†Œ์ˆ˜์  ์ดํ•˜๋Š” ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.
  • ์ ‘ํžŒ ์ง€ํ๋ฅผ ๊ทธ๋Œ€๋กœ ๋˜๋Š” 90๋„ ๋Œ๋ ค์„œ ์ง€๊ฐ‘์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๋งŒ ์ ‘์Šต๋‹ˆ๋‹ค.

์ง€๊ฐ‘์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ๋‹ด์€ ์ •์ˆ˜ ๋ฆฌ์ŠคํŠธ wallet๊ณผ ์ง€ํ์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ๋‹ด์€ ์ •์ˆ˜ ๋ฆฌ์ŠคํŠธ bill์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ง€๊ฐ‘์— ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ ์ง€ํ๋ฅผ ์ตœ์†Œ ๋ช‡ ๋ฒˆ ์ ‘์–ด์•ผ ํ•˜๋Š”์ง€ returnํ•˜๋„๋ก solutionํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ง€ํ๋ฅผ ์ง€๊ฐ‘์— ๋„ฃ๊ธฐ ์œ„ํ•ด ์ ‘์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ์ง€ํ๋ฅผ ์ ‘์€ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•  ์ •์ˆ˜ ๋ณ€์ˆ˜ answer๋ฅผ ๋งŒ๋“ค๊ณ  0์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
2. ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด bill์˜ ์ž‘์€ ๊ฐ’์ด wallet์˜ ์ž‘์€ ๊ฐ’ ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ bill์˜ ํฐ ๊ฐ’์ด wallet์˜ ํฐ ๊ฐ’ ๋ณด๋‹ค ํฐ ๋™์•ˆ ์•„๋ž˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
    2-1. bill[0]์ด bill[1]๋ณด๋‹ค ํฌ๋‹ค๋ฉด
        bill[0]์„ 2๋กœ ๋‚˜๋ˆ„๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.
    2-2. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด
        bill[1]์„ 2๋กœ ๋‚˜๋ˆ„๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.
    2-3. answer์„ 1 ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.
3. answer์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„์˜ ์˜์‚ฌ์ฝ”๋“œ์™€ ์ž‘๋™๋ฐฉ์‹์ด ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ

  • wallet์˜ ๊ธธ์ด = bill์˜ ๊ธธ์ด = 2
  • 10 ≤ wallet[0], wallet[1] ≤ 100
  • 10 ≤ bill[0], bill[1] ≤ 2,000

 

2. ์ถœ๋ ฅ ์˜ˆ์‹œ

 

3. ๋ฌธ์ œ ๋‹ต์•ˆ

def solution(wallet, bill):
    answer = 0
    while(min(wallet) < min(bill) or max(wallet) < max(bill)):
        if bill[0] < bill[1]:
            bill[1] //= 2
        else:
            bill[0] //= 2
        answer += 1

    return answer