문제 설명
index 0은 code, index 1은 date, index 2는 maximum, index 3은 remain으로 이루어진 리스트가 여러개로 이루어진 data중
1번째로는 ext에 해당하는 데이터가 (예제1번이라고 한다면 date 즉 index 1) val_ext보다 작으면
없애고
새로 만든 리스트를 sort_by로 정렬해서 return 하라는 문제
문제 풀이
1. code, date, maximum, remain의 인덱스를 각각 지정한다.
data_info = {'code':0, 'date': 1, 'maximum': 2, 'remain':3}
2. 1번째로는 ext에 해당하는 데이터가 (예제1번이라고 한다면 date 즉 index 1) val_ext보다 작으면 리스트에서 제외하고 새로운 리스트를 만든다.
new_data = []
...(생략)
i = data_info.get(ext)
for da in data:
if da[i] < val_ext:
new_data.append(da)
3. 새로 만든 리스트를 sort_by를 기준으로 정렬한다.
j = data_info.get(sort_by)
...(생략)
new_data = sorted(new_data, key=lambda new : new[j])
return new_data
def solution(data, ext, val_ext, sort_by):
new_data = []
data_info = {'code':0, 'date': 1, 'maximum': 2, 'remain':3}
i = data_info.get(ext)
j = data_info.get(sort_by)
print(i, j)
#새로운 리스트 new_data에 ext으로 걸러진 데이터 삽입
for da in data:
if da[i] < val_ext:
new_data.append(da)
new_data = sorted(new_data, key=lambda new : new[j])
return new_data
나의 삽질
원래 딕셔너리를 사용하지 않고 If문으로 i, j를 만들었었는데, 다른 사람들의 풀이를 보니, 딕셔너리로 풀었는데
딕셔너리로 풀 생각을 못해서 좀 아쉽다.
'IT 공부 > 코딩테스트' 카테고리의 다른 글
특정 index로 리스트 정렬하는 방법 -파이썬 (0) | 2023.12.11 |
---|---|
[프로그래머스 level1] 덧칠하기 파이썬 (0) | 2023.12.09 |
[프로그래머스 level1] 대충 만든 자판 python3 (2) | 2023.12.07 |
[프로그래머스 Level1] 둘만의 암호 (2) | 2023.12.05 |
파이썬 약수 구하기 (0) | 2023.11.29 |