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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [Python] [PCCE ๊ธฐ์ถœ๋ฌธ์ œ] 7๋ฒˆ / ๋ฒ„์Šค

rtw0202 2025. 8. 30. 10:34

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

์˜์ง„์ด๋Š” ์•ฝ์†์žฅ์†Œ์— ๊ฐ€๊ธฐ ์œ„ํ•ด ๋ฒ„์Šค๋ฅผ ํƒ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์Šค์—๋Š” ์ขŒ์„์ด ์ด seat๊ฐœ๋งŒํผ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜์ง„์ด๋Š” ๋ฒ„์Šค ์ขŒ์„์— ์•‰์•„์„œ ๊ฐˆ ์ˆ˜ ์žˆ์„์ง€ ๊ถ๊ธˆํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ ์—์„œ ์ถœ๋ฐœํ•œ ๋ฒ„์Šค๊ฐ€ ์˜์ง„์ด๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ •๊ฑฐ์žฅ์— ๋„์ฐฉํ•˜๊ธฐ ์ „์— ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฐ ์ •๊ฑฐ์žฅ์—์„œ ์Šน/ํ•˜์ฐจํ•œ ์Šน๊ฐ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์˜์ง„์ด๊ฐ€ ๋ฒ„์Šค์— ํƒ„ ์ˆœ๊ฐ„ ๋นˆ ์ขŒ์„์€ ๋ช‡ ๊ฐœ์ธ์ง€ ๊ตฌํ•ด์ฃผ์„ธ์š”. ์˜์ง„์ด๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ •๊ฑฐ์žฅ์—์„œ๋Š” ์˜์ง„์ด๊ฐ€ ์ œ์ผ ๋จผ์ € ๋ฒ„์Šค์— ํƒ‘์Šนํ•˜๋ฉฐ, ์ด์ „ ์ •๊ฑฐ์žฅ์—์„œ ๋ฒ„์Šค์— ํƒ‘์Šนํ•œ ์Šน๊ฐ๋“ค์€ ๋‚จ๋Š” ์ขŒ์„์ด ์žˆ๋‹ค๋ฉด ํ•ญ์ƒ ์•‰๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜, ๊ธฐ์ ์—์„œ ์ถœ๋ฐœํ•˜๋Š” ๋ฒ„์Šค์—๋Š” ์Šน๊ฐ์ด 0๋ช… ํƒ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์€ ์ขŒ์„์ด 5๊ฐœ์ธ ๋ฒ„์Šค์— ๊ฐ ์ •๊ฑฐ์žฅ์—์„œ ์Šน/ํ•˜์ฐจํ•œ ์Šน๊ฐ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜์ง„์ด๋Š” 4๋ฒˆ ์ •๊ฑฐ์žฅ์—์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์œผ๋ฉฐ, "On"์€ ์Šน์ฐจํ•œ ์Šน๊ฐ, "Off"๋Š” ํ•˜์ฐจํ•œ ์Šน๊ฐ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • 1๋ฒˆ ์ •๊ฑฐ์žฅ : ["On", "On", "On"] (3๋ช… ์Šน์ฐจ, 0๋ช… ํ•˜์ฐจ)
  • 2๋ฒˆ ์ •๊ฑฐ์žฅ : ["Off", "On", "-"] (1๋ช… ์Šน์ฐจ, 1๋ช… ํ•˜์ฐจ)
  • 3๋ฒˆ ์ •๊ฑฐ์žฅ : ["Off", "-", "-"] (0๋ช… ์Šน์ฐจ, 1๋ช… ํ•˜์ฐจ)

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ, 1๋ฒˆ ์ •๊ฑฐ์žฅ์—์„œ 3๋ช…์ด ์Šน์ฐจํ•˜๊ณ , 2๋ฒˆ ์ •๊ฑฐ์žฅ์—์„œ 1๋ช… ์Šน์ฐจ 1๋ช… ํ•˜์ฐจ, 3๋ฒˆ ์ •๊ฑฐ์žฅ์—์„œ 1๋ช…์ด ํ•˜์ฐจํ–ˆ์œผ๋ฏ€๋กœ 4๋ฒˆ ์ •๊ฑฐ์žฅ์— ๋„์ฐฉํ•œ ๋ฒ„์Šค์—๋Š” 2๋ช…์ด ํƒ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 4๋ฒˆ ์ •๊ฑฐ์žฅ์—์„œ๋Š” ์˜์ง„์ด๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํƒ‘์Šนํ•˜๋ฏ€๋กœ, ๋‚จ์•„์žˆ๋Š” ์ขŒ์„ ์ˆ˜๋Š” 3๊ฐœ์ž…๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ solutionํ•จ์ˆ˜๋Š” ๋ฒ„์Šค์˜ ์ขŒ์„ ๊ฐœ์ˆ˜ seat, ๊ธฐ์ ์—์„œ ์ถœ๋ฐœํ•œ ๋ฒ„์Šค๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•œ ์ •๊ฑฐ์žฅ์—์„œ ์Šน๊ฐ์ด ์Šน/ํ•˜์ฐจํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ 2์ฐจ์› ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ passengers๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋ฒ„์Šค์— ๋‚จ์•„์žˆ๋Š” ์ขŒ์„์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. solution ํ•จ์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๋นˆ์นธ์„ ์ฑ„์›Œ solutionํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • 1 ≤ seat ≤ 30
  • 1 ≤ passengers์˜ ๊ธธ์ด ≤ 10
  • 1 ≤ passengers์˜ ๊ธธ์ด[i]์˜ ๊ธธ์ด ≤ 20
    • passengers[0]์€ 1๋ฒˆ ์ •๊ฑฐ์žฅ, passengers[1]์€ 2๋ฒˆ ์ •๊ฑฐ์žฅ,  ... passengers[i]๋Š” i+1๋ฒˆ ์ •๊ฑฐ์žฅ์˜ ์ •๋ณด์ž…๋‹ˆ๋‹ค.
    • passsengers์˜ ๊ธธ์ด๊ฐ€ n์ด๋ผ๋ฉด, ์˜์ง„์ด๋Š” n + 1๋ฒˆ ์ •๊ฑฐ์žฅ์—์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • passengers[i]์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  • passengers[i]์˜ ์›์†Œ๋Š” "On", "Off" ๋˜๋Š” "-"์ž…๋‹ˆ๋‹ค.
    • "-"๋Š” ๋ฐฐ์—ด์˜ ๊ฐ€๋กœ(์—ด) ๊ธธ์ด๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•œ ์š”์†Œ๋กœ, ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๋„ ์—†์Šต๋‹ˆ๋‹ค.
    • "-"๊ฐ€ "On", "Off" ์‚ฌ์ด์— ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

 

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

 

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

def func1(num):
    if 0 > num:
        return 0
    else:
        return num

def func2(num):
    if num > 0:
        return 0
    else:
        return num

def func3(station):
    num = 0
    for people in station:
        if people == "Off":
            num += 1
    return num

def func4(station):
    num = 0
    for people in station:
        if people == "On":
            num += 1
    return num


def solution(seat, passengers):
    num_passenger = 0
    for station in passengers:
        num_passenger += func4(station)
		num_passenger -= func3(station)
    answer = func1(seat - num_passenger)

    return answer