본문 바로가기

발자국98

프로그래머스 해시 level2 전회번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 아이디어 도전2 1. sort하기 2. 문자열로 바꾸기 -> 숫자도 if in 사용 가능 3. for로 비교 - 비교 대상이 자신의 다음 것부터 마지막까지 비교 - 하나라도 겹치는 것이 있.. 2020. 9. 2.
프로그래머스 해시 level1 완주하지 못한 선수- collections 모듈의 Counter 함수 내가 한 풀이 def solution(participant, completion): dict={} for p in participant: if p in dict: dict[p]+=1 else: dict[p]=1 for p in completion: if dict[p]==1: del(dict[p]) else: dict[p]-=1 answer=list(dict.keys())[0] return answer 1. 딕셔너리에 참가자 이름(p)을 key값으로 하여 그 수를 value 값으로 둔다. 2. 완주자 배열을 for문을 통해 돌며, value 값이 1일 경우 지우고 그 이상의 값일 경우 하나씩 뺀다. collection 모듈의 counter함수를 이용한 풀이 import collections def solu.. 2020. 9. 2.
[파이썬] lambda, sort - 리스트 특정 조건, 다중 조건 정렬 lambda lambda 함수는 익명 함수로 단발적으로 쓰이는 함수를 말한다. 이때 함수를 아주 간단하게 쓰면 lamda가 된다고 생각하면 쉽다. 다음과 같은 식을, def add(x): return x+10 아래와 같이 바꾸어 줄 수 있다. add = lambda x: x+10 if 문 등도 사용할 수 있는데, def score(x): if x>=80: return 'pass' else: return 'f' score= lambda x: 'pass' if x>=60 else 'f' if문이 ture일 때를 앞부분, else 일 때를 뒤에 적어주면 된다. 이런 lamda는 다양하게 사용되는데, 그 중에서도 sort메소드와 함께 사용되는 경우가 많다. sort strings = [(2, 0), (3, 1).. 2020. 9. 1.
[파이썬]프로그래머스 level1 해시, 완주하지못한 선수 def solution(participant, completion): for p in completion: participant.remove(p) answer=participant[0] return answer 효율성에서 실패하였다. for문이 completion을 도는데 remove함수가 participant를 일일이 확인하며 돌기 때문에 시간복잡도가 높게 계산된 것으로 보인다. 함수를 사용할 때도 그 함수의 특징을 잘 생각해봐야겠다는 생각을 하였다. 딕셔너리를 이용하여 다시 만들어 보았다. def solution(participant, completion): dict={} for p in participant: if p in dict: dict[p]+=1 else: dict[p]=1 for p in .. 2020. 9. 1.
728x90