본문 바로가기

Python

(67)
[프로그래머스] 프린터 - 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..
[프로그래머스] 두 정수 사이의 합 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 두 정수 사이의 합 def solution(a, b): # 둘 중 큰 수를 x에 넣기 if a > b: x = a y = b else: x = b y = a answer = 0 for i in range(y, x + 1): answer += i return answer Comment if문으로 분기하여 풀었다. Reference 프로그래머스
[프로그래머스] 나누어 떨어지는 숫자 배열 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 나누어 떨어지는 숫자 배열 def solution(arr, divisor): # divisor로 나누어 떨어지는 요소를 넣을 배열 answer = [] # arr을 하나씩 탐색하여 나누어 떨어지는 배열을 answer에 넣기 for i in range(len(arr)): if arr[i] % divisor == 0: answer.append(arr[i]) # answer 배열이 비어있는경우 -1을 넣기 if len(answer) == 0: answer.append(-1) else: # 비어있지 않은 경우 오름차순 정렬 answer.sort() return answer Comment for문으로 하나씩 접근하..