코테 4

프로그래머스_해시_전화번호 목록

난이도가 낮은편인 문제 해시를 이용하지 않고 풀었다. 다만, 효율성 테스트에서 처음에 떨어졌음. 문제 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화..

Python) collections 내장 모듈

파이썬 collections 내장 모듈에서는 많은것을 지원해준다.. 일전에 정리한 적이 있었던 Counter 부터 deque, defaultdict, OrderedDict 등등.. 유용한 것들을 정리 해보도록 하자. #Ordereddict는 파이썬 3.6부터 dict가 이미 ordereddict처럼 값을 받은 순서대로 자료를 저장하게끔 해놓았기 때문에 딱히 사용할 필요가 없을듯! 1. Counter 먼저, Counter객체는 전에 정리 해놓았던 것을 참고 하도록하자. https://excelsior-cjh.tistory.com/94 collections 모듈 - Counter collections.Counter() 컨테이너에 동일한 값의 자료가 몇개인지를 파악하는데 사용하는 객체이다. docs.pytho..

파이썬) 딕셔너리에 대해 알아보자

Python을 하다보니 어느 순간부터 자꾸 리스트로만 문제를 해결하려고 하는 습 성이 생겼다. 그만큼 리스트는 잘 다루게 되었지만 한계점이 분명히 있는 자료형이니... 특히 Hash로 풀 수 있는 문제들이 많기때문에 딕셔너리에 대해서 자세히 알아보자! 1. 딕셔너리에 Key-Value 쌍 추가하기 - setdefault() : key-value 쌍 추가 - update() : key-value 쌍 추가 및 수정 2. 딕셔너리에 키와 기본값 저장하기 x = {'a':10, 'b':20, 'c':30, 'd':40} x.sedefault('e') 결과 : x = {'a':10, 'b':20, 'c':30, 'd':40} x.sedefault('f', 100) 결과 : 3. 딕셔너리의 value 수정하기 x...

Python) 빈 리스트 만들어보기 (Shallow Copy, Deep Copy)

파이썬 코드를 짜다보면 빈 리스트를 만들어야하는 경우가 종종 있다.. a = [0]*n 이런식으로 만들어도 큰 문제는 없다. 문제는 2차원으로 만들때다. a = [[0]]*n]*k 이렇게 만들면 아래와 같은 결과가 나오는데 이제 빈 리스트에 값을 할당해주면 이런식으로 모든 내부리스트의 원소에 1이 할당되는.. 기이한 현상이 일어난다. Shallow Copy가 일어나는 것 같은데 정확한 이유는 잘 모르겠다. Deep Copy와 Shallow Copy에 대한 내용은 아래 블로그를 참고하자. https://blueshw.github.io/2016/01/20/shallow-copy-deep-copy/ 얕은 복사(shallow copy) vs 깊은 복사(deep copy) 이번에는 객체의 복사에 대해서 알아보려고..