본문 바로가기
728x90

전체 글279

[Python] 파이썬을 파이썬답게 - itertools 모듈 https://programmers.co.kr/learn/courses/4008 파이썬을 파이썬답게 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr itertools [곱집합 구하기] 두 스트링 'ABCD', 'xy' 의 곱집합은 Ax Ay Bx By Cx Cy Dx Dy iterable1 = 'ABCD' iterable2 = 'xy' iterable3 = '1234' for value1 in iterable1: for value2 in iterable2: for value3 in iterable3: print(v.. 2022. 1. 15.
[Python] 파이썬을 파이썬답게 - iterable/sequence type 다루기 https://programmers.co.kr/learn/courses/4008 파이썬을 파이썬답게 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr iterable 자신의 멤버를 하나씩 리턴할 수 있는 객체 (반복가능한 객체) list, str, tuple, dictionary 등 [2차원 리스트 행-열 바꾸기] mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = [[], [], []] for i in range(len(mylist)): for j in range(len.. 2022. 1. 15.
[Python] 파이썬을 파이썬답게 - 정수/문자열 다루기 https://programmers.co.kr/learn/courses/4008 파이썬을 파이썬답게 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr 정수형 [몫과 나머지] a = 7 b = 5 print(a//b, a%b) # divmod, unpacking 사용 print(*divmod(a,b)) 가독성, 팀의 코드 스타일에 따라 a//b, a%b와 같이 쓸 수도 있음 큰 숫자를 다룰 경우, divmod가 a//d, a%b보다 빠름 [10진법 변환] num = '3212' base = 5 answer = 0 fo.. 2022. 1. 15.
[PG/Python] 외벽 점검 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 📌 문제 접근 방법 완전탐색으로 풀이하였다. 시계방향, 반시계방향을 모두 고려해주기 위해서 weak리스트의 요소에 n을 더하여 추가해준다. weak리스트의 원래 원소들만을 출발점으로해서 원래 weak의 길이만큼 슬라이싱하여 queue를 만들어준다. dist를 순열을 사용하여 people에 저장하고 큐의 형태로 만들어준다. people의 0번째에 저장된 .. 2022. 1. 15.
[PG/Python] 합승 택시 요금 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 📌 문제 접근 방법 다익스트라 알고리즘을 사용하여 풀이하였다. 가장 중점이.. 2022. 1. 14.
[PG/Python] 이중우선순위큐 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 📌 문제 접근 방법 최대/최소값을 삭제하기때문에 힙을 사용해야 하나? 생각했지만, 힙 하나로 최대/최소값을 삭제하기는 힘들 것 같아서 일단 리스트로 구현을 해봤다. 문제 그대로 삽입/삭제만 했는데도 시간초과없기 통과가 되었지만, 문제에서 요구하는 풀이는 아닐 것 같아서 다른 풀이를 참고했다. 힙을 하나만 사용하지 않고 최대힙, 최소힙을 모두 사용하면 내가 처음에 생각했던대로 구현이 가능했다. 대신 두 힙에는 같은 값이 중복으로 저장되어있으므로 최대힙, 최소힙 중 하나라도 비게 된다면 두 힙 모두 비게 되는 것이다. 또한 최대힙의 .. 2022. 1. 11.
[Python] heapq 모듈 사용법 heap 2021.10.03 - [ALGORITHM/개념 정리] - [Algorithm] 힙 (Heap) python에서는 heapq 모듈을 사용하여 리스트를 최소 힙처럼 사용 가능 heapq를 사용하여 만든 최소 힙의 0번째 인덱스는 항상 최소 값 heap = [] [원소 추가] heappush() : 내부적으로 이진 트리에 원소 추가, O(logN) heapq.heappush(heap, 1) [원소 삭제] heappop() : 가장 작은 원소를 삭제한 후 삭제한 값 리턴, O(logN) heapq.heappop(heap) [기존 리스트 힙으로 변환] heapq.heapify(heap) 2022. 1. 11.
[Python] 세트, 딕셔너리 관련 함수 세트(set) mutable, unorderd, iterable [값 추가] .add(x) : x를 세트에 추가 a = {'사과', '바나나', '수박'} a.add('포도') print(a) # {'포도', '바나나', '사과', '수박'} .update(iterable) : 여러 값을 추가 a = {'사과', '바나나', '수박'} a.update({'토마토', '토마토', '딸기'}, {'포도', '레몬'}) print(a) # {'포도', '토마토', '사과', '레몬', '수박', '딸기', '바나나'} [값 삭제] .remove(x) : x를 삭제하고, 없으면 KeyError 발생 a = {'사과', '바나나', '수박'} a.remove('사과') print(a) # {'바나나', '수박'}.. 2022. 1. 10.
[Python] 리스트 관련 함수 리스트 mutable, ordered, iterable [값 추가] cafe = ['starbucks', 'tomntoms', 'hollys'] .append(x) : 리스트에 값 추가, 가장 마지막에 추가됨 cafe.append('banapresso') # ['starbucks', 'tomntoms', 'hollys', 'banapresso'] .extend(iterable) : 리스트에 iterable 값을 붙임 cafe.extend(['wcafe', '빽다방']) # ['starbucks', 'tomntoms', 'hollys', 'wcafe', '빽다방'] cafe.extend('ediya') # ['starbucks', 'tomntoms', 'hollys', 'e', 'd', 'i', 'y', .. 2022. 1. 10.
[Python] 문자열 관련 함수 문자열(String) immutable, ordered, iterable # immutable : 값을 변경할 수 없음 a = 'my string?' a[-1] = '!' [조회 / 탐색] .find(x) : x의 첫 번째 위치 반환, 없으면 -1 반환 a = 'apple' a.find('p') # 1 a.find('z') # -1 .index(x) : x의 첫 번째 위치 반환, 없으면 오류 발생 a = 'apple' a.index('p') # 1 a.index('z') [문자열 변경] .replace(old, new[, count]) : old를 new로 바꿔서 반환 count 지정 안하면 전체 old가 바뀌고, 지정하면 해당 개수만큼만 시행 a = 'yaya!' b = 'wooooowoo' a.rep.. 2022. 1. 10.
728x90