프로그래머스

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음에는 n의 124 나라에서의 숫자의 자리수를 구한 후, 해당 자리수만큼 중복순열(product)를 사용해 리스트를 만든 후, 해당 리스트의 인덱스에 해당하는 수를 리턴하도록 했다.이러면 내가 구하려는 수 말고도, 자리수에 해당하는 124 나라에서의 모든 수를 구해야 하므로 쓸 데 없는 계산을 많이 해, 시간 초과가 뜬다. 시간 초과 풀이from itertools import productdef solution(n): answer = '' i = 3 cnt = 1 # 자리수 whil..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 그리디 문제다.그리디는 정말... 풀이가 딱 떠오르지 않으면 푸는데 한참 걸리거나 못 푸는 것 같다.그래서 많이 풀어보는 게 중요하다는 생각이 든다. 풀이를 계속 생각해봤지만, 계속 아니더라..결국 구글링을 참고해서 풀었다. def solution(number, k): answer = '' stack = [] for num in number: while k > 0 and stack and stack[-1] 0: stack = stack[:-k] ..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 큐 자료형을 활용한 문제다. 길이가 같은 두 큐에 들어있는 원소의 합을 같게 만들면 된다.큐는 pop을 통해 먼저 들어간 원소가 나오고, append를 통해 뒤에 원소를 추가한다.이런 큐의 성질을 활용해 로직을 구현했다. from collections import dequedef solution(queue1, queue2): n = len(queue1) # 각 큐의 길이 total = sum(queue1) + sum(queue2) # 모든 큐의 합 # 모든 큐의 합이 홀수인 경우에는 각 큐..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr # 해당하는 영역이 모두 같은 수로 이루어져 있는지 확인하는 함수def check(arr): n = len(arr) global zero_cnt global one_cnt total = 0 for row in arr: total += sum(row) if n == 1: if arr[0][0] == 0: zero_cnt += 1 else: one_cnt += 1 re..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 아이디어는 쉽다.큐를 사용하면 되는 문제. 트럭 리스트가 주어질 때, 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내는 문제다.다리는 일차선으로 이루어져 있고, 트럭의 순서는 정해져 있다.그리고 다리에는 트럭이 최대 bridge_length대 올라갈 수 있다.그리고 다리는 weight 이하의 무게를 견딜 수 있다. 문제의 핵심은 현재 다리를 건너고 있는 트럭의 무게의 합이 weight이하이도록 유지시켜야 한다는 점이다.그러므로 다리를 건너고 있는 트럭 리스트를 큐 자료구조로 만든다.그리고 트럭이 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DP로 풀면 되는 문제다. def solution(x, y, n): INF = int(1e9) dp = [INF] * 1000001 dp[x] = 0 for i in range(x, y + 1): if dp[i] == INF: continue if i + n
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제를 잘못 읽어서 풀지 못했다. 문제를 제대로 이해하고 나서는 큐를 사용해서 풀 수 있었다. 내 풀이 from collections import deque # 큐 사용 풀이 def solution(prices): answer = [] q = deque(prices) # 큐가 빌 때까지 while q: now = q.popleft() # 확인할 시점의 가격 time = 0 for price in q: time += 1 if now > price: # 만약 확인하라 시점의 가격이 큐에 있던 가격보다 커지..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DFS를 활용해서 푸는 문제다. DFS를 연습하기 위해 풀었음 풀이 코드 def dfs(numbers, result, target): global answer if len(numbers) == 0: if target == result: answer += 1 return else: dfs(numbers[1:], result - numbers[0], target) dfs(numbers[1:], result + numbers[0], target) def solution(numbers, target): global ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전형적인 그리디 문제. 구명보트 리스트를 정렬한 후, left, right를 통해 리스트를 순회하면서 필요한 구명보트 개수의 최솟값을 구해주면 된다. 내 풀이 코드 def solution(people, limit): people.sort() # 오름차순 정렬 left = 0 right = len(people) - 1 answer = 0 # 구명보트 최솟값 while left limit: right -= 1 # 오른쪽 사람 혼자 탄다. answer += 1 # 두 명 무게의 합이 limit보다 작거나 같은 경우..
30_가사 검색 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이진 탐 happenundo.tistory.com
happenundo
'프로그래머스' 태그의 글 목록 (4 Page)