가이드/프로그래머스10 프로그래머스 > 해시 > 전화번호 목록 / Python3 문제 설명 더보기 문제 풀이 def solution(phone_book): # 처음에 2중 for문으로 풀었더니 시간초과가 발생하여 for문 하나로 줄임 phone_book.sort() # 작과 짧은 값부터 정렬 for i in range(0, len(phone_book) - 1): if phone_book[i + 1].find(phone_book[i]) == 0: return False return True 2022. 3. 22. 프로그래머스 > 스택/큐 > 기능개발 / Python3 문제 설명 더보기 문제 풀이 def solution(progresses, speeds): answer = [] days = [] for i in range(0, progresses.__len__()): days.append((100 - progresses[i]) // speeds[i]) # 남은 작업일 나누기 속도 if (100 - progresses[i]) % speeds[i] > 0: # 나머지가 없으면 1일 추가 days[i] += 1 maxDay = 0 count = 0 for i in days: if i > maxDay: # 앞에 일이 더 먼저 끝나는지 확인 if count != 0: # 최초는 치면 안되므로 answer.append(count) maxDay = i count = 1 else: .. 2022. 3. 17. 프로그래머스 > 2017 팁스타운 > 짝지어 제거하기 / Python3 문제 설명 더보기 문제 풀이 def solution(s): answer = -1 list = [] for i in s: if list.__len__() == 0 or list[-1] != i: # 선입 후출 Stack 방식 사용 list.append(i) else: list.pop() if list.__len__() == 0: answer = 1 else: answer = 0 return answer 2022. 3. 16. 프로그래머스 > 연습문제 > 최솟값 만들기 / Python3 문제 설명 더보기 문제 풀이 def solution(A,B): answer = 0 A.sort() # 오름차순 정렬 B.sort(reverse=True) # 내림차순 정렬 for i in range(0,A.__len__()): # 값이 가장 작게 나올려면 큰것과 작은것을 곱해줌 answer += A[i] * B[i] return answer 2022. 3. 15. 이전 1 2 3 다음 반응형