반응형

➰ Library/Python 9

[Python] 특정기준으로 배열 정렬하기 (key=lambda)

파이썬에서 배열을 정렬하기 위해서는 sorted() / sort() 함수나 reverse 를 사용하여 내림차순, 오름차순정렬을 할 수 있습니다. 하지만 내가 원하는 특별한 기준으로 배열을 정렬하고 싶을 때는 어떻게 해야할까요? 이때는 key=lambda 식을 사용하면 됩니다! 1. key 가 하나일 때 ex1) x를 기준으로 정렬하기 (일반 오름차순) arr = ['abc', 'bac', 'bca'] sorted(arr, key=lambda x : x) ex2) arr 에 속하는 각 원소들을 x 라고 생각했을 때, x[0]를 기준으로 정렬하기 arr = ['abc', 'bac', 'bca'] sorted(arr, key=lambda x : x[0]) 2. key 가 여러개 일 때 ex1) x[0]를 기준..

➰ Library/Python 2021.07.08

[Python] 순열과 조합 직접 구현하기 / itertools 사용하기

안녕하세요! daily_D 입니다! 👩🏻‍💻 오늘은 Python itertools 로 순열과 조합을 이용해보는 방법과 직접 구현하는 방법에 대해 알아볼까요? ➤ 순열 ( = permutations) : n 개의 원소에서 중복을 허용하지 않고 r개를 뽑아서 나열 직접구현 def permutations(array, r): for i in range(len(array)): if r == 1: yield [array[i]] else: for next in permutations(array[:i] + array[i+1:], r-1): yield [array[i]] + next itertools 사용 from itertools import permutations for i in permutations([1, 2, ..

➰ Library/Python 2021.06.24

[Python] 시간 초과 날때 해결방법!

안녕하세요! daily_D 입니다! 👩🏻‍💻 오늘은 Python 으로 문제풀이할 때 시간초과가 나는 경우 해결할 수 있는 몇가지 방법을 알려드릴까합니다! 1. sys.stdin.readline()로 입력받기 입력값을 받아 저장해하는 경우 input() 으로 구현하시는 분들이 많으실텐데 sys 라는 파이썬의 표준 라이브러리를 사용하면 훨씬 빠른 시간에 적은 메모리를 사용하여 입력 받을 수 있답니다! import sys 변수 = sys.stdin.readline() 2. 배열에 원소 추가할 때 인덱스로 접근하기 배열에 원소를 추가하면 보통 빈 배열을 만들고 append 로 추가할 때가 많은데, 이 경우 입력 받을 개수(N)를 알고있다면 N 만큼 배열을 초기화해두고 인덱스로 각자 접근해서 저장하는 것이 효율이..

➰ Library/Python 2021.04.26

[Python] 2차원 배열 입력받기

안녕하세요! daily_D 입니다! 👩🏻‍💻 오늘은 Python 으로 2차원 배열 입력받는 방법에 대해 공부해봐요! 파이썬에서 2차원 배열을 입력받는 방법은 3가지가 있습니다. 아래의 그림과 같이, 가로 A, 세로 B 길이의 배열을 선언한다고 가정해 봅시다! 참고로, 3가지 경우는 모두 배열의 세로(B) 의 크기를 아는 경우에만 사용할 수 있습니다. 1. 원소 하나씩 입력받기 arr = [for _ in range(B)] // 2차원 배열의 가로길이 : B for i in range(B): arr[i] = list(map(int, input().split())) input, split, map, list 에 대한 이해가 잘 되지 않는다면 [Python] 1차원 배열 입력받기 를 참고해주세요 2. 원소에 ..

➰ Library/Python 2021.03.31

[Python] 1차원 배열 입력받기

안녕하세요! daily_D 입니다! 👩🏻‍💻 오늘은 Python 으로 1차원 배열 입력받는 방법에 대해 공부해봐요! 1. 띄어쓰기 간격으로 들어올 때 입력이 아래와 같다면, 한 줄을 한번에 입력받아 배열로 만드는 방식을 사용할 수 있습니다. 1 2 3 4 5 arr = list(map(int, input().split())) 코드에 대한 상세 설명은 아래와 같습니다. input() : 키보드를 통해 문자열을 입력받는다 (enter 입력전까지를 한줄로 판단) split() : 문자열을 띄어쓰기를 기준으로 나눈다 map(int, 리스트A) : 리스트A 의 모든 요소를 int 로 변환 list() : map 의 결과를 배열로 반환 2. Enter 간격으로 들어올 때 이 경우는 입력되는 줄의 수..

➰ Library/Python 2021.03.29

[Python] 2차원배열 동시에 선언&초기화하기

가로 A, 세로 B 길이의 배열을 선언한다고 가정 1. arr = [[0 for _ in range(A)] for _ in range(B)] 2. arr = [[0] * (A) for _ in range(B)] 3. arr = [[0] * A ] * B 😡 마지막 방법은 사용하지 말것! → * 을 사용하면, 주소값을 복사하여 2차원 배열을 만드는 것이기 때문에 arr[0][x]을 수정하면 같은 주소를 공유하는 arr[0][x], arr[1][x], arr[2][x] 의 값이 한번에 변경되는 문제가 발생한다.

➰ Library/Python 2021.03.29