본문 바로가기
반응형

알고리즘/프로그래머스 level 1,272

[파이썬🐍] 프로그래머스 : 완주하지 못한 선수 def solution(participant, completion): participant.sort() completion.sort() num=len(completion) for i in range(num): if participant[i] != completion[i]: return participant[i] return participant[num] 다른 코드로 했을 땐 시간초과가 떠서 실패하고 마지막으로 해본 코드이다. 이 코드는 완주한 리스트, 전체 참가자 리스트를 정렬시켜서 비교하다가 없으면 return 해주는 형식이다. 마지막에 return paricipant[num]을 해준 이유는 제한사항에 "completion의 길이는 participant의 길이보다 1 작습니다." 라는 사항이 있다. 그.. 2021. 4. 18.
[파이썬🐍] 프로그래머스 : 주식가격 def solution(prices): answer = [0]*len(prices) for i in range(len(prices)-1): for j in range(i, len(prices)-1): if prices[i] > prices[j]: break else: answer[i] += 1 return answer 아주 간단하게 풀 수 있었다. 마지막 리스트에는 항상 '0'일 수 밖에 없다. 초기화할 때 '0'으로 했기 때문에 마지막까지 고려할 필요가 없어진다. 2021. 4. 17.
[파이썬🐍] 프로그래머스 : 프린터 def solution(priorities, location): answer = 0 while True: max_num=max(priorities) for i in range(len(priorities)): if max_num==priorities[i]: answer+=1 priorities[i]=0 max_num=max(priorities) if location==i: return answer 처음에 리스트의 max값을 구해주고 돌아가며 해당 값이 max값인지 확인한다. 그리고 max값이면 그 자리 값을 0으로 바꾸고 answer에 1 더해준다. 다시 max값을 재설정해주고 for문을 돌린다. 구하려는 idx 즉 location 차례가 오면 answer을 반환해준다! 간단히 풀 수 있었지만 다른 사람의.. 2021. 4. 17.
[파이썬🐍] 프로그래머스 : 두 개 뽑아서 더하기 def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i+1, len(numbers)): if numbers[i] + numbers[j] not in answer: answer.append(numbers[i] + numbers[j]) answer.sort() return answer풀고나서 다른 분들의 풀이를 보니까 정말 간단하고 효율적으로 푼 문제들이 있었다!!from itertools import combinations def solution(numbers): return sorted(list(set([sum([i,j]) for i,j in combinations(numbers,2)])))바로 이코드이다. ite.. 2021. 4. 16.
반응형