파이썬

    [Python] 02. PEP8 스타일 가이드를 따르라

    본 포스팅은 책을 공부하고 정리한 내용입니다. PEP란? Python Enhancement Proposal 의 약자이다. 번역하면 파이썬 개선 제안서,,, 무슨 말이냐면 그냥.. 파이썬 코드를 어떻게 구성할지 정해주는 스타일 가이드이다. 코드는 기능적인 것을 구현하기 위해 언어마다 문법만 지킨다면 코딩 스타일은 사실 개발자 마음이다. 근데 개발을 처음부터 혼자하면 상관 없지만, 대다수의 상황상 우리는 같이 협업하여 서비스를 만들어 내야한다. 당연하게도 각자의 스타일대로 짜고 만나서 설명해주는 비효율성보다는 하나의 고정된 표준 스타일이 있다면 좀 더 효율적인 협업이 가능할 것이다. 그래서 파이썬 내에서 제안된 스타일 가이드가 존재하는데 그게 바로 PEP이다. PEP 8은 깔끔한 파이썬 코드를 작성하는 방법..

    [Python] 01. 사용중인 파이썬의 버전을 알자

    본 포스팅은 책을 공부하고 정리한 내용입니다. 1. 왜 버전을 알아야 하는지? 프로그램 개발자들은 유지 보수를 위해, 프로그램을 버전업한다. 버전 업이 될 때마다 여러 기능이 추가되거나 삭제되기도 한다. 이는 파이썬 버전업에도 동일하게 변화를 겪었다. 특히 파이썬 2에서 3으로 변화할 때 프로그램의 상당 부분이 변경되었다. 파이썬 2는 2020년 1월 1일부로 더 이상 지원되지 않는다.(버그 수정, 보안 패치, 새로운 기능의 역포팅이 이루어지지 않음) 그렇기 때문에 특정 파이썬 2코드는 파이썬 3에서 실행했을 시 에러를 출력하는 경우가 꽤 많다. 파이썬 3을 쓰는 것을 강력히 추천하지만, 2를 써야 하는 경우 2to3이나 six 같은 도구의 도움을 받아 파이썬 3으로 포팅하는 것을 제안한다. 이와 같은 ..

    [프로그래머스][파이썬] 71491. 기능개발

    programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr My answer: from collections import deque def solution(progresses, speeds): answer = [] dq_progresses=deque(progresses) dq_speeds=deque(speeds) while(dq_progresses): answer_fac=0 for i in range(len(dq_speeds)..

    [프로그래머스][python] 최대 용량이 정해진 FIFO 큐 클래스

    class MyStack(object): def __init__(self): self.lst = list() def push(self, x): self.lst.append(x) def pop(self): return self.lst.pop() def size(self): return len(self.lst) class MyQueue(object): def __init__(self, max_size): self.stack1 = MyStack() self.stack2 = MyStack() self.max_size = max_size def qsize(self): return self.stack1.size() def push(self, item): if self.qsize()>=self.max_size: re..

    [python] queue사용법( Queue module의 Queue class)

    Queue module의 Queue class¶ deque보다는 느림 multi-consumer queue를 제공 In [1]: from queue import Queue queue init¶ In [2]: queue1=Queue() queue1 Out[2]: put()¶ In [4]: myqueue=Queue() myqueue.put(1) myqueue.put(2) myqueue.put(3) #한번에 원소를 다 넣을 수는 없음 get()¶ In [7]: myqueue=Queue() myqueue.put(1) myqueue.put(2) myqueue.put(3) front=myqueue.get_nowait() #선입선출 print(front) myqueue.queue 1 Out[7]: deque([2, ..

    [python] queue 사용법 (collection 모듈 deque)

    python에서 queue 사용법¶ (collections module) deque(덱) 사용¶ deque 초기화¶ deque([iterable[,maxlen]) In [1]: #collections module에서 deque import from collections import deque In [ ]: deque1=deque() deque2=deque([1,2,3]) #list ->queue로 만들기 deque3=deque(maxlen=5) #길이를 정해주면 만약 이 길이를 넘어갈 경우, 앞에 넣은 값 pop되고 뒤에 새 값이 들어감 append¶ In [6]: mydeque=deque() mydeque.append(5) mydeque Out[6]: deque([5]) popleft¶ In [7]: ..

    [프로그래머스][python]12922. 수박수박수박수박수박수?

    programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조 programmers.co.kr My answer: def solution(n): repeat=int(n/2) remain=n%2 answer = '' answer+=repeat*("수박") if remain!=0: answer+="수" return answer reference code: def water_melon(n): s = "수박" * n return s[:n]

    [프로그래머스][python]12943. 콜라츠 추측

    programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr My answer: def solution(num): answer = 0 while(1): if num%2==0: num=num/2 elif num%2!=0 and num!=1: num=num*3+1 elif answer>=500: return -1 elif num==1: return answer answer+=1

    [프로그래머스][python]12915. 문자열 내 마음대로 정렬하기

    programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1 programmers.co.kr My answer: def solution(strings, n): return sorted(strings, key= lambda x : x[n])

    [프로그래머스][python]12919.서울에서 김서방 찾기

    programmers.co.kr/learn/courses/30/lessons/12919 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제 programmers.co.kr My answer: def solution(seoul): answer="" for i, name in enumerate(seoul): if(name=="Kim"): answer="김서방은 "+str(i)+"에 있다" break return answer reference answer: def findKim(..