Stay Hungry Stay Foolish

TIL

[TIL] 2024년 11월 06일

dev스카이 2024. 11. 6. 23:57

파이썬

리스트에 다차원 요소가 들어있을 때 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

 

 


'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