반응형

프로그래밍/Python 13

[Python] 함수 사용법 - (3) itertools

이번엔 Python이 APL, Haskell, SML같은 2000년대 이전 프로그래밍 언어에 영향을 받아 캐스팅한 itertools 모듈에 대해 공부해보자. itertools 모듈은 순수 파이썬에서 간결하고 효율적으로 iterator를 만든다. from itertools import product def solution(board): for row in range(len(board)): for grid in range(len(board[row])): if board[row][grid] == 1: for i in list(product([-1, 0, 1], repeat=2)): if row+i[0] >= len(board) or row+i[0] = len(bo..

[Python] 함수 사용법 - (2) sort(), sorted()

이번엔 sort(), sorted()의 차이점과 익명함수(Anonymous Function) lambda에 대해서 알아보자 def solution(numlist, n): answer = sorted(numlist,key = lambda x : (abs(x-n), n-x)) return answer solution([1, 2, 3, 4, 5, 6], 4) solution([10000,20,36,47,40,6,10,7000], 30) 문제: solution(m_list, n)에서 n에 가장 가까운 값부터 차례로 정렬하는 문제이다. 만약 거리가 같다면 더 큰 수를 앞에 오도록 배치한다 위 풀이는 sorted()함수의 optional parameter인 key를 이용해 간단하게 문제를 해결했다 sorted(it..

[Python] 함수 사용법 - (1) enumerate()

프로그래머스 코딩테스트를 풀다가 아름다운 코드를 하나 보았다 문제를 풀고 다음 문제로 넘어가기 전에 다른 사람이 푼 코드를 보았는데 너무 깔끔해서 마음에 들었다 '가장 아름다운 하나의 답이 존재한다'는 파이썬의 슬로건에 맞는 코드였다 거기에 사용된 함수를 하나씩 설명하면서 내 실력도 올려보려고 한다 def solution(array): while len(array) != 0: for i, a in enumerate(set(array)): array.remove(a) if i == 0: return a return -1 solution([1, 2, 3, 3, 3, 4]) 위 문제는 주어진 array에서 최빈값을 구하는 문제였다 enumerate(iterable, [start=0]) iterable한 객체를..

반응형