ํ์ด์ฌ
๋ฆฌ์คํธ์ ๋ค์ฐจ์ ์์๊ฐ ๋ค์ด์์ ๋ sort
list.sort()๋ sorted()๋ฅผ ์ฌ์ฉํ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ํํ์ ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ์ฐจ๋ก๋๋ก ๋น๊ตํ์ฌ ์ ๋ ฌํ๋ค. ์ฆ, ๋ค์ฐจ์ ์์๊ฐ ๋ค์ด ์๋ ๋ฆฌ์คํธ์์ ์ ๋ ฌ ๊ธฐ์ค์ด ๋ช ์๋์ง ์์ผ๋ฉด ํํ์ ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ๋น๊ตํ๊ณ , ์ฒซ ๋ฒ์งธ ์์๊ฐ ๋์ผํ๋ฉด ๋ ๋ฒ์งธ ์์, ๋ ๋ฒ์งธ ์์๋ ๊ฐ์ผ๋ฉด ์ธ ๋ฒ์งธ ์์… ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์์ฐจ์ ์ผ๋ก ๋น๊ตํ์ฌ ์ ๋ ฌํ๋ค.
โ ์์ : (year, month, day, name) ํํ์ ๋ฆฌ์คํธ
# ํ์ ๋ฆฌ์คํธ๊ฐ (year, month, day, name) ํ์์ผ๋ก ์ ์ฅ๋์ด ์์ ๋
student_list = [
(2000, 5, 21, "Alice"),
(1999, 12, 15, "Bob"),
(2000, 5, 15, "Charlie"),
(2001, 1, 10, "Dave")
]
- ์ฌ๊ธฐ์ list.sort()๋ฅผ ํธ์ถํ๋ฉด ๋ค์ ์์๋ก ์ ๋ ฌ์ด ์งํ๋๋ค.
- ์ฒซ ๋ฒ์งธ ์์(year)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ.
- year๊ฐ ๊ฐ์ผ๋ฉด **๋ ๋ฒ์งธ ์์(month)**๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- month๋ ๊ฐ์ผ๋ฉด **์ธ ๋ฒ์งธ ์์(day)**๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- ๋ง์ง๋ง๊น์ง ๊ฐ๋ค๋ฉด **๋ค ๋ฒ์งธ ์์(name)**๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
์ ๋ ฌ ๊ฒฐ๊ณผ
[(1999, 12, 15, "Bob"), # 1. year๊ฐ ๊ฐ์ฅ ์์
(2000, 5, 15, "Charlie"), # 2. year ๊ฐ๊ณ month, day ์ค๋ฆ์ฐจ์
(2000, 5, 21, "Alice"),
(2001, 1, 10, "Dave")] # 3. ๊ฐ์ฅ ๋ง์ง๋ง year
์๋ฐ
Generic
์๋ฐ์์ ์ ๋ค๋ฆญ(generics)์ ํด๋์ค, ๋ฉ์๋, ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ ๋ ๋ฐ์ดํฐ ํ์ ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์์ ์ฑ์ ๋์ผ ์ ์๋ค. ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ปดํ์ผ ํ์ ํ์
์ฒดํฌ
- ์ ๋ค๋ฆญ์ ์ปดํ์ผ ์์ ์ ํ์ ์ ์ฒดํฌํ์ฌ, ์๋ชป๋ ํ์ ์ด ์ฌ์ฉ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
- ์๋ฅผ ๋ค์ด List<String>์ผ๋ก ์ ์ธํ๋ฉด ์ด ๋ฆฌ์คํธ์๋ ์ค์ง String ํ์ ๋ง ๋ด์ ์ ์๋ค.
- ํ์
์์ ์ฑ
- ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ฉด ์บ์คํ (casting)์ ํผํ ์ ์์ด ํ์ ์์ ์ฑ์ ๋์ผ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด, ์ ๋ค๋ฆญ์ ์ฌ์ฉํ์ง ์๋ List์์ ๊ฐ์ฒด๋ฅผ ๊บผ๋ผ ๋๋ (String)์ฒ๋ผ ์บ์คํ ํด์ผ ํ์ง๋ง, ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ฉด ๊ทธ๋ฐ ๊ณผ์ ์ด ํ์ ์๋ค.
- ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ
- ์ฌ๋ฌ ํ์ ์์ ์ฌ์ฉํ ์ ์๋ ์ฝ๋(ํด๋์ค, ๋ฉ์๋)๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด List<T> ๊ฐ์ ์ ๋ค๋ฆญ ํ์ ์ผ๋ก, ๋ฆฌ์คํธ ๋ด๋ถ์ ์ด๋ค ํ์ ์ ๊ฐ์ฒด๋ฅผ ๋ฃ์ด๋ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
Generic ์ฌ๋ฌ ํ์ ์ ์ธ ์
public class Pair<T, S> { ... }
public class Pair<T1, T2> { ... }
- ๊ฐ์ ํ์ ์ด๋ผ๋ ์ด๋ฆ์ด ๋ฌ๋ผ์ผ ํ๋ค.
๐ ์์ฑํ ๊ฒ์๊ธ
[ํ์ด์ฌ ์์ด(Permutations)๊ณผ ์กฐํฉ(Combinations)] ๐ https://dev-cloud.tistory.com/376
[Programmers ์ฝ๋ฉํ ์คํธ L1. ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์] ๐ https://dev-cloud.tistory.com/377
[Programmers ์ฝ๋ฉํ ์คํธ L1. ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ] ๐ https://dev-cloud.tistory.com/378
[Programmers ์ฝ๋ฉํ ์คํธ L1. ๋ชจ์๊ณ ์ฌ] ๐ https://dev-cloud.tistory.com/379
[BOJ ์ฝ๋ฉํ ์คํธ 5635. ์์ผ] ๐ https://dev-cloud.tistory.com/380
[์๋ฐ ์ค๊ธ 11. Generic 1] ๐ https://dev-cloud.tistory.com/381
'๐ Growth > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [TIL] 2024๋ 11์ 08์ผ (2) | 2024.11.09 |
|---|---|
| [TIL] 2024๋ 11์ 07์ผ (0) | 2024.11.07 |
| [TIL] 2024๋ 10์ 30์ผ (0) | 2024.10.30 |
| [TIL] 2024๋ 10์ 29์ผ (0) | 2024.10.29 |
| [TIL] 2024๋ 10์ 26์ผ (0) | 2024.10.29 |