본문 바로가기

programming study/Algorithm

(275)
[프로그래머스] 주식가격 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 주식가격 def solution(prices): # 떨어지지 않은 시간을 넣을 리스트 answer = [] # prices의 길이 prices_len = len(prices) # prices를 접근 for i in range(prices_len): # 떨어지지 않은 시간 time = 0 for j in range(i + 1, prices_len): time += 1 # 가격이 내려간 경우 if prices[i] > prices[j]: break # time를 answer에 넣기 answer.append(time) return answer Comment 큐 문제라서 deque를 사용했었는데 시간초과 오류가 ..
[프로그래머스] 124 나라의 숫자 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 124 나라의 숫자 def solution(n): answer = '' # 숫자 변환 # n이 3 미만이면 바로 리턴 if n = 3: # 나머지 구하기 remain = (n % 3) # 나머지가 0 이하일 때 n을 1 빼야한다. # 0이라는 개념이 없기 때문이다. if remain == 0: n -= 1 answer += '4' if remain == 1: answer += '1' if remain == 2: answer += '2' # n에 3을 나눈 몫을 넣기 n = n // 3 # 앞자리에 0이 오면 안되므로 if n != ..
[프로그래머스] 프린터 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 프린터 from collections import deque def solution(priorities, location): answer = 0 # 인쇄를 요청한 문서의 위치를 체크하는 배열 check = deque([0]) * len(priorities) # 주어진 대기목록을 deque 변환 priorities = deque(priorities) # 인쇄를 요청한 문서의 위치를 표시 check[location] = 1 # 인쇄를 요청한 문서가 몇 번째 오는 지 찾기 while True: # 현재 시점에서 가장 중요한 문서 important = max(priorities) # 가장 앞에 있는 문서 prio..
[프로그래머스] 다리를 지나는 트럭 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # deque from collections import deque # 다리를 지나는 트럭 def solution(bridge_length, weight, truck_weights): # deque 변환 truck_weights = deque(truck_weights) answer = 0 # 현재 다리위의 무게 cur_weight = 0 # 현재 다리위의 트럭을 나타내는 리스트 cur_bridge = deque([0]) * bridge_length # 경과된 시간 time = 0 # 다리 건너기 while truck_weights: # 매 반복시 시간 더하기 (초 경과) time += 1 # 초 경과 시, 맨..
[프로그래머스] 문자열 내 p와 y의 개수 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 문자열 내 p와 y의 개수 def solution(s): # 주어진 문자열을 대문자로 통일 s = s.upper() # p를 카운트할 변수 p_count = 0 # y를 카운트할 변수 y_count = 0 # 주어진 문자열 탐색 for i in range(len(s)): # p 카운트 if s[i] == 'P': p_count += 1 elif s[i] == 'Y': y_count += 1 # 탐색 후 p, y 가 같은경우 if p_count == y_count: return True # 다른 경우 elif p_count != y_count: return False Comment 문자열 전체를 대문자나 소..
[프로그래머스] 완주하지 못한 선수 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 완주하지 못한 선수 def solution(participant, completion): # 똑같은 순서가 오도록 정렬 participant.sort() completion.sort() # 완주자 리스트 길이만큼 탐색 for i in range(len(completion)): # 완주자 길이만큼 탐색시 같지 않은 선수는 완주하지 못한 선수 if participant[i] != completion[i]: return participant[i] # 탐색이 무사히 끝났다면 participant의 마지막 요소가 완주하지 못한 선수 return participant.pop() print(solution(["misl..
[프로그래머스] 문자열 내 마음대로 정하기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 문자열 내 마음대로 정하기 def solution(strings, n): answer = sorted(strings, key=lambda x: (x[n], x)) return answer Comment 람다식을 참고하여 풀었다. Reference 프로그래머스
[프로그래머스] 폰켓몬 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 폰켓몬 def solution(nums): answer = 0 # nums의 길이 반이 고를 수 있는 폰켓몬의 수 pick = len(nums) / 2 # nums를 집합 자료형 변환하여 중복 제거후 다시 리스트 변환 nums = list(set(nums)) # 중복을 제거한 nums의 길이가 pick과 크거나 같으면 가질 수 있는 최대 종류는 pick과 같다. if len(nums) >= pick: answer = pick # nums의 길이가 작은 경우 그 만큼의 종류를 가질 수 있다. elif len(nums) < pick: answer = len(nums) return answer Comment s..