728x90
[๋ฌธ์ ๋งํฌ] ๐https://www.acmicpc.net/problem/5635
Solution
sol.1 (date ํจ์ ์ฌ์ฉ)
from datetime import date
n = int(input()) # ํ์์ ์
students = [input().split() for _ in range(n)]
# ์ด๊ธฐํ๋ ์์ผ ๋ณ์
youngest_date, oldest_date = date(1990, 1, 1), date(2010, 12, 31)
youngest_name, oldest_name = "", ""
# ํ์๋ค์ ์์ผ ๋น๊ต
for name, day, month, year in students:
birth_date = date(int(year), int(month), int(day))
if birth_date > youngest_date:
youngest_date = birth_date
youngest_name = name
if birth_date < oldest_date:
oldest_date = birth_date
oldest_name = name
print(youngest_name)
print(oldest_name)
sol.2 (lambda, sort ํจ์ ์ฌ์ฉ)
n = int(input()) # ํ์ ์
students = []
# ํ์ ์ ๋ณด ์
๋ ฅ๋ฐ๊ธฐ
for _ in range(n):
name, day, month, year = input().split()
students.append((name, int(year), int(month), int(day)))
# ์์ผ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ: ์ฐ๋ -> ์ -> ์ผ ์
students.sort(key=lambda x: (x[1], x[2], x[3]))
# ๊ฐ์ฅ ๋์ด๊ฐ ์ ์ ์ฌ๋์ ๋ง์ง๋ง์, ๋ง์ ์ฌ๋์ ์ฒ์์ ์์น
print(students[-1][0]) # ๊ฐ์ฅ ๋์ด๊ฐ ์ ์ ์ฌ๋
print(students[0][0]) # ๊ฐ์ฅ ๋์ด๊ฐ ๋ง์ ์ฌ๋
sol.3 (sort ํจ์ ์ฌ์ฉ)
n = int(input()) # ํ์์ ์
result = []
for i in range(n):
name, day, month, year = input().split()
day, month, year = map(int, (day, month, year)) # int ํ์ผ๋ก ๋ณํ
result.append((year, month, day, name))
result.sort()
print(result[-1][3])
print(result[0][3])
- list.sort()๋ sorted()๋ฅผ ์ฌ์ฉํ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ํํ์ ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ์ฐจ๋ก๋๋ก ๋น๊ตํ์ฌ ์ ๋ ฌํ๋ค.
- ์ฆ, ๋ค์ฐจ์ ์์๊ฐ ๋ค์ด ์๋ ๋ฆฌ์คํธ์์ ์ ๋ ฌ ๊ธฐ์ค์ด ๋ช ์๋์ง ์์ผ๋ฉด ํํ์ ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ๋น๊ตํ๊ณ , ์ฒซ ๋ฒ์งธ ์์๊ฐ ๋์ผํ๋ฉด ๋ ๋ฒ์งธ ์์, ๋ ๋ฒ์งธ ์์๋ ๊ฐ์ผ๋ฉด ์ธ ๋ฒ์งธ ์์… ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์์ฐจ์ ์ผ๋ก ๋น๊ตํ์ฌ ์ ๋ ฌํ๋ค.
728x90
'๐งฉ Algorithm > [BOJ] Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [BOJ] 1303. ์ ์ - ์ ํฌ (Python/๊ทธ๋ํํ์/Silver 1) (0) | 2024.11.16 |
|---|---|
| [BOJ] 5212. ์ง๊ตฌ ์จ๋ํ (Python/๊ตฌํ/Silver 2) (0) | 2024.11.07 |
| [BOJ] 2563. ์์ข ์ด (Python/๊ตฌํ/Silver 5) (0) | 2024.11.04 |
| [BOJ] 2002. ์ถ์ (Python/๊ตฌํ/Silver 2) (1) | 2024.10.29 |
| [BOJ] 1021. ํ์ ํ๋ ํ (Python/์๋ฃ๊ตฌ์กฐ/Silver 3) (1) | 2024.10.29 |