[Python] 리스트 안에서 순열(permutation)과 조합(combination) 활용하기
하나 혹은 여러 개의 리스트가 주어졌을 때, 해당 리스트 내의 값들로 특정 경우의 수를 구해야 할 때가 있습니다. 다음과 같은 리스트가 있다고 해봅시다. fruits_li=['사과', '배', '바나나'] 이 중 2개의 과일을 고르는 수는 몇 가지일까요? 그렇게 어려운 문제처럼 보이진 않습니다. 하지만 리스트가 늘어나면 어떨까요? bread_li=['식빵', '소보루빵', '크림빵'] drink_li=['주스', '맥주', '요거트'] 빵 하나, 음료수 하나, 과일 하나를 고른다고 하면 그 경우의 수는 몇 가지일까요? 생각만으로도 복잡해집니다. 다행히 파이썬에는 이런 상황을 위한 라이브러리 itertools가 존재합니다. itertools에는 여러 가지 내장함수가 존재합니다만, 우리가 오늘 사용해볼 것은..
2021. 2. 25.
[Python]리스트 절대값순으로 정렬하기
리스트를 정렬하는 내장함수 중 하나로 sorted라는 것이 있습니다. 매우 편리하기 때문에 가장 많이 사용되는 함수 중 하나인데요. 대체적으로는 아래와 같이 오름차순, 내림차순으로 리스트를 정렬할 때 쓰입니다. sample_li=[2,1,4,3] # 오름차순 정렬 sample_li=sorted(sample_li) print(sample_li) >> [1,2,3,4] # 내림차순 정렬 sample_li=sorted(sample_li, reverse=True) print(sample_li) >> [4,3,2,1] 하지만 이 함수의 key 옵션을 활용하면 절대값 순으로 정렬하는 것도 가능한데요. 절대값이란 정수에서 '-', '+'를 뺀 값을 말합니다. 부호로는 |1|(1의 절대값), |-1|(-1의 절대값)과..
2021. 2. 11.
[Python] 이중 리스트 해제하고 1차원 리스트로 만들기
이중 리스트란 쉽게 말해 리스트 안에 리스트가 있는 것을 말합니다. sample_li = [[1, 2, 3], [4, 5, 6]] 이러한 리스트의 경우, 리스트 안의 특정값을 찾거나 카운트하는 과정이 번거로워집니다. 그렇기 때문에 이러한 이중 리스트를 해제하고 그 안의 값들만 모아 1차원 리스트로 만드는 방법을 알아두면 편리합니다. # 라이브러리 불러오기 import itertools # 샘플 리스트 만들기 sample_li = [[1,2,3], [4,5,6]] # 이중 리스트 해제하기 sample_li = list(itertools.chain(*sample_li)) >> [1,2,3,4,5,6] 리스트 해제 시에는 itertools라는 라이브러리를 사용합니다. 이 라이브러리는 반복되는 데이터를 처리하는..
2021. 2. 9.
[Python]int, float 리스트 값들을 str로 한꺼번에 변환하기
한 리스트 안의 값들은 보통 int, float, str 중 하나로 이루어져 있습니다. sample_li=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 예시의 리스트 값들은 int입니다. 하지만 어떤 이유로 이 리스트 안의 값들을 float, 혹은 str로 바꾸고 싶을 때가 생길 수도 있습니다. 하나의 값만이라면 float() 혹은 str()로 손쉽게 변환할 수 있겠지만, 문제는 일부나 전체 리스트 값을 모두 변환해야 할 때입니다. 코딩테스트에서 입력값에 주로 사용하는 map을 활용하면, 이런 고민을 해결할 수 있습니다. # int=>str sample_li=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] li_str = list(map(str, sample_li)) print(li_..
2021. 2. 8.