전체 글
-
collections 모듈 - deque개발 모음집/Python 2022. 5. 12. 15:44
1. deque란 Deque(데크)는 double-ended queue 의 줄임말로, 앞과 뒤에서 즉, 양방향에서 데이터를 처리할 수 있는 queue형 자료구조를 의미한다. 아래의 [그림1]은 deque의 구조를 나타낸 그림이다. python 에서 collections.deque는 list와 비슷하다. append(), pop() 등의 메소드를 deque에서도 제공한다 append(x) list.append(x) 와 마찬가지로 x를 deque의 오른쪽(마지막)에 추가(삽입)해준다. # 예제1. list.append() vs deque.append() import collections # list lst = ['a', 'b', 'c'] lst.append('d') print(lst) ''' 결과 ['a',..
-
collections 모듈 - defaultdict개발 모음집/Python 2022. 5. 12. 15:37
# 예제(1) - dict vs defaultdict # 1-1. 기본 딕셔너리 import collections ex1 = {'a':1, 'b':2} print(ex1) ------------------------- print(ex1['c']) ''' 결과 {'b': 2, 'a': 1} --------------------------------- # defaultdict의 초기값 생성 KeyError: 'c' ''' # 1-2. collections.defaultdict # defaultdict의 초기값 생성 def default_factory(): return 'null' ex2 = collections.defaultdict(default_factory, a=1, b=2) print(ex2) prin..
-
collections 모듈 - Counter개발 모음집/Python 2022. 5. 12. 15:23
collections.Counter()의 결과값(return)은 딕셔너리 형태로 출력 # collections.Counter 예제 (1) # list를 입력값으로 함 import collections lst = ['aa', 'cc', 'dd', 'aa', 'bb', 'ee'] print(collections.Counter(lst)) ''' 결과 Counter({'aa': 2, 'cc': 1, 'dd': 1, 'bb': 1, 'ee': 1}) ''' # collections.Counter 예제 (2) # dictionary를 입력값으로 함 import collections print(collections.Counter({'가': 3, '나': 2, '다': 4})) ''' 결과 Counter({'다': 4..
-
vars() 내장함수개발 모음집/Python 2022. 5. 10. 23:50
모듈, 클래스, 인스턴스 또는 dict 어트리뷰트가 있는 다른 객체의 dict 어트리뷰트를 돌려줍니다. 인자가 없으면, vars() 는 locals() 처럼 동작합니다. locals 딕셔너리에 대한 변경이 무시되기 때문에 locals 딕셔너리는 읽기에만 유용하다는 것에 주의하세요 locals은 말그대로 locals()가 실행되어지는 함수내의 지역 namespace 들을 정리해서 넣어주고 globals는 전역, 지역, builtin 정보 모두 dict 형태로 정리해 준다. 아래 예제를 통해 이해해 보자. locals(), vars() 예제 a_var = range(2) def locals_test(): b_var = 3 c_var = "hi" d_var = locals() print(d_var) local..
-
[프로그래머스] 행렬 테두리 회전하기개발 모음집/Programmers 2022. 5. 10. 23:26
코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 다른사람 풀이 answer = [] array = [[0 for col in range(columns)] for row in range(rows)] t = 1 for row in range(rows): for col in range(columns): array[row][col] = t t += 1 먼저 행렬을 만들어줘야한다. 처음에는 값이 0으로 초기화된 rows*columns 크기의 배열을 만들어준다. 그 후, 가로방향으로 숫자가 1씩 증가하..
-
[프로그래머스] 타겟넘버개발 모음집/Programmers 2022. 5. 6. 14:20
코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 다른사람 풀이 - DFS def solution(numbers, target): answer = 0 queue = [[numbers[0],0], [-1*numbers[0],0]] n = len(numbers) while queue: temp, idx = queue.pop() print(temp) idx += 1 if idx < n: queue.append([temp+numbers[idx], idx]) queue.append([temp-nu..
-
파이썬 리스트 컴프리헨션개발 모음집/Python 2022. 5. 4. 17:07
num_list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] new_list = [] # 평소에는 아래와 같이 작성 for num in num_list: if num > 3: new_list.append(num) # 여기서 List Comprehension을 사용하면 더 짧고 간결하게 코드를 작성할 수 있습니다. new_list = [ num for num in num_list if num > 3 ] # 이외에도 filter를 활용하는 방법도 있습니다. new_list = list(filter(lambda x: x > 3, num_list))
-
[프로그래머스] 124 나라의 숫자개발 모음집/Programmers 2022. 5. 4. 17:03
코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 다른사람 풀이 (성공) def solution(n): answer = '' n_array = ["1", "2", "4"] while n > 0: n -= 1 answer = n_array[n % 3] + answer n //= 3 return answer 하나의 배열을 만들어 줍니다.n_array=["1","2","4"] 를 만들어서 계속 뺑뺑이 돌려줍니다. 숫자 n에서 n%3을 했을 때, 0,1,2가 나오게 됩니다. 0이 나오면 11이 나오면 23이 나오면 4 이렇게 출력이 되도록 합니다.n-1을 하고, n%3을 해서 배열결과물을 출력합니다. n=1이면, n-1(1-1=0)을 해서 n%3(0%3=0)을 해서 1 출력n=2이면, n-..