<aside>
💬 lv1
, 자료 구조
위니브 대표는 실리콘벨리로 출장을 가게 되었습니다. 실리콘벨리의 여러 기업들과 미팅을 잡았고, 날씨로 인해 비행기가 늦을까 하여 실리콘벨리로 가는 가장 빠른 항공편을 선택하려 합니다. 주어진 항공편 정보를 바탕으로 가장 빠르게 도착하는 항공편의 이름을 찾아 출력해 주세요.
각 항공편 정보는 "항공편 이름, 출발 시간, 도착 시간"의 형식으로 주어진 문자열 리스트입니다. 출발 시간과 도착 시간은 "HH:MM" 형식으로 표시됩니다. 가장 빠른 항공편의 이름만 출력하는 것이 목표입니다.
입력 (항공편 정보 리스트) | 출력 (가장 빠른 항공편 이름) |
---|---|
["Flight A,07:00,09:30", "Flight B,06:30,09:00", "Flight C,07:30,10:00"] | "Flight B" |
["Flight D,08:00,10:00", "Flight E,08:30,10:30", "Flight F,07:45,10:15"] | "Flight D" |
def solution(flights):
class Flight: **#1 클래스 선언**
def __init__(self, name, start, end):
self.name = name
self.start = start
self.end = end
def __lt__(self, other):
return self.end < other.end
flight_objects = [] **#2 인스턴스 선언**
for flight in flights:
name, start, end = flight.split(",")
flight_objects.append(Flight(name, start, end))
flight_objects.sort() **#3 정렬**
return flight_objects[0].name **#4 결과 반환**
클래스 선언
Flight
클래스를 정의합니다. 항공편의 이름
, 출발시간
, 도착시간
을 저장하는데 사용합니다.
인스턴스 선언
문자열 정보를 기반으로 Flight
인스턴스 리스트를 생성합니다. 이 때 주어진 데이터를 split
함수를 사용하여 이름
, 출발시간
, 도착시간
에 넣어줍니다. 그 후, flight_objects
리스트에 넣어줍니다. 이 과정을 반복해줍니다.
정렬
리스트를 도착 시간 기준으로 항공편 정렬합니다.
결과 반환
가장 빠른 항공편의 이름을 반환합니다.
클래스
기본 형태: class 클래스명():
개념: 데이터와 해당 데이터를 처리하는 메서드(함수)들을 함께 묶어 놓은 사용자 정의 데이터 형식입니다. 인스턴스를 생성하기 위한 설계도로 볼 수 있습니다.
class Person:
# 클래스 변수
species = "인간"
# 생성자 메서드
def __init__(self, name, age):
# 인스턴스 변수
self.name = name
self.age = age
# 메서드
def greet(self):
return f"안녕하세요, 저는 {self.name}이고, {self.age}살입니다."
# 객체 생성
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)
# 메서드 호출
print(person1.greet()) # 출력: 안녕하세요, 저는 Alice이고, 30살입니다.
print(person2.greet()) # 출력: 안녕하세요, 저는 Bob이고, 25살입니다.
sort
기본 형태: sort()
개념: 리스트를 정렬하는 메서드입니다. 사용 시 원본이 수정됩니다.
num = [3, 1, 4, 1, 5, 9, 2, 6, 5]
# 리스트를 정렬하여 변경
num.sort()
print(num) # 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9]
def solution(data):
flights_data = [i.split(',') for i in data] **#1 리스트 생성**
fastest_flight = min(flights_data, key=lambda x: x[2]) **#2 빠른 항공편 찾기**
return fastest_flight[0] **#3 결과 반환**