1. ๋ฌธ์ ์ค๋ช
AI ์์ง๋์ด์ธ ํ์์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๋ ์์ ์ ์งํํ๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ ["์ฝ๋ ๋ฒํธ(code)", "์ ์กฐ์ผ(date)", "์ต๋ ์๋(maximum)", "ํ์ฌ ์๋(remain)"]์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ํ์์ด๋ ์ด ๋ฐ์ดํฐ๋ค ์ค ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง ๋ฝ์์ ์ ๋ ฌํ๋ ค ํฉ๋๋ค.
์ ๋ ฌํ ๋ฐ์ดํฐ๋ค์ด ๋ด๊ธด ์ด์ฐจ์ ์ ์ ๋ฆฌ์คํธ data์ ์ด๋ค ์ ๋ณด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฝ์๋ผ์ง๋ฅผ ์๋ฏธํ๋ ๋ฌธ์์ด ext, ๋ฝ์๋ผ ์ ๋ณด์ ๊ธฐ์ค๊ฐ์ ๋ํ๋ด๋ ์ ์ val_ext, ์ ๋ณด๋ฅผ ์ ๋ ฌํ ๊ธฐ์ค์ด ๋๋ ๋ฌธ์์ด sort_by๊ฐ ์ฃผ์ด์ง๋๋ค.
data์์ ext ๊ฐ์ด val_ext๋ณด๋ค ์์ ๋ฐ์ดํฐ๋ง ๋ฝ์ ํ, sort_by์ ํด๋นํ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋จ, ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ ํญ์ ํ ๊ฐ ์ด์ ์กด์ฌํฉ๋๋ค.
์ ํ์ฌํญ
- 1 ≤ data์ ๊ธธ์ด ≤ 500
- data[i]์ ์์๋ [์ฝ๋ ๋ฒํธ(code), ์ ์กฐ์ผ(date), ์ต๋ ์๋(maximum), ํ์ฌ ์๋(remain)] ํํ์ ๋๋ค.
- 1 ≤ ์ฝ๋ ๋ฒํธ≤ 100,000
- 20000101 ≤ ์ ์กฐ์ผ≤ 29991231
- data[i][1]์ yyyymmdd ํํ์ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ฌ๋ฐ๋ฅธ ๋ ์ง๋ง ์ฃผ์ด์ง๋๋ค. (yyyy : ์ฐ๋, mm : ์, dd : ์ผ)
- 1 ≤ ์ต๋ ์๋≤ 10,000
- 1 ≤ ํ์ฌ ์๋≤ ์ต๋ ์๋
- ext์ sort_by์ ๊ฐ์ ๋ค์ ์ค ํ ๊ฐ์ง๋ฅผ ๊ฐ์ง๋๋ค.
- "code", "date", "maximum", "remain"
- ์์๋๋ก ์ฝ๋ ๋ฒํธ, ์ ์กฐ์ผ, ์ต๋ ์๋, ํ์ฌ ์๋์ ์๋ฏธํฉ๋๋ค.
- val_ext๋ ext์ ๋ฐ๋ผ ์ฌ๋ฐ๋ฅธ ๋ฒ์์ ์ซ์๋ก ์ฃผ์ด์ง๋๋ค.
- ์ ๋ ฌ ๊ธฐ์ค์ ํด๋นํ๋ ๊ฐ์ด ์๋ก ๊ฐ์ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
2. ์ถ๋ ฅ ์์

3. ๋ฌธ์ ๋ต์
def solution(data, ext, val_ext, sort_by):
answer = []
# ์ธ๋ฑ์ค ํ ๋น
def set_index(col):
if col == 'code':
return 0
elif col == 'date':
return 1
elif col == 'maximum':
return 2
elif col == 'remain':
return 3
# ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ
ext_index = set_index(ext)
for d in data:
if d[ext_index] < val_ext:
answer.append(d)
# ์ ๋ ฌ
sort_index = set_index(sort_by)
answer.sort(key=lambda x: x[sort_index])
return answer'๐ฅ๏ธ ์ฝ๋ฉํ ์คํธ > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] ์ถ์ต ์ ์ (0) | 2026.03.09 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2026.03.09 |
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] [PCCP ๊ธฐ์ถ๋ฌธ์ ] 1๋ฒ / ๋ถ๋ ๊ฐ๊ธฐ (0) | 2026.03.01 |
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] ๋์๋ฌธ์ ๋ฐ๊ฟ์ ์ถ๋ ฅํ๊ธฐ (0) | 2026.03.01 |
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] [PCCP ๊ธฐ์ถ๋ฌธ์ ] 1๋ฒ / ๋์์ ์ฌ์๊ธฐ (0) | 2026.02.28 |