๐Ÿš€ Growth/TIL

[TIL] 2024๋…„ 11์›” 06์ผ

devCloud 2024. 11. 6. 23:57
728x90

ํŒŒ์ด์ฌ

๋ฆฌ์ŠคํŠธ์— ๋‹ค์ฐจ์› ์š”์†Œ๊ฐ€ ๋“ค์–ด์žˆ์„ ๋•Œ 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

 

 


728x90

'๐Ÿš€ 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