본문 바로가기

728x90

분류 전체보기

(180)
프로그래머스 LV2 2 x n 타일링 def solution(n): answer = 0 dp = [1,2] for i in range(2,n+1) : dp.append((dp[i-1] + dp[i-2])% 1000000007) return dp[n-1]풀이 및 회고n이 1과 2일때는 고정 갯수라서 1 ,2 배열에 저장하고 나머지 부턴 점화식을 이용해서 구해줬다.
프로그래머스 LV 1 과일장수 def solution(k, m, score): answer = 0 score.sort(reverse=True) # 남은사과가 한 박스에 들어가는 사과가 많을때 for i in range(0,len(score),m) : if len(score[i:i+m]) == m : answer += min(score[i:i+m]) * m return answer풀이 및 회고정렬을 하고 난 후 슬라이싱을 잘 해줘야 한다.처음에는 슬라이싱을 2번 해서 시간초과를 겪었다 ,, ㅠ
프로그래머스 LV 1 K 번째 수 def solution(array, commands): answer = [] for i in range(len(commands)) : s = commands[i][0] e = commands[i][1] p = commands[i][2] sliced_array = array[s-1:e] sliced_array.sort(); pick_array = sliced_array[p-1] answer.append(pick_array); return answer풀이 및 회고간단하게 슬라이싱을 진행할 처음 지점과 마지막 지점 그리고 몇번 째 요소를 가져올지 변수로 저장하고 슬라이싱을 진행하..
프로그래머스 LV2 숫자 변환 def solution(x, y, n): answer = 0 dp = set() dp.add(x) while dp : if y in dp : return answer; else : dp_copy = set() for i in dp : if i + n 풀이 및 회고DP를 이용해서 문제를 풀었습니다.중복을 제거하기 위해 set() 자료구조를 사용했습니다. dp_copy 를 이용해서 +, *2, *3 인 결과를 최신화 해줍니다.
프로그래머스 LV2 택배상자 def solution(order): s = [] i = 0 n = 0 while i n : n += 1 s.append(n) elif s[-1] == order[i] : s.pop() i += 1 else : return i return i풀이 및 회고i 인덱스 값 , n 현개 실을 값 두 개의 변수와 stack 을 사용해 문제를 풀었습니다. 1. i가 order의 길이보다 커질때 까지 반복문을 합니다.2. 값을 비교해 현재 값이 더 작으면 스택에 저장합니다.3. 스택과 order[i] 가 같으면 스택에 빼주고 인덱스값을 1개 올립니다...
프로그래머스 LV2 스킬트리 from collections import dequedef solution(skill, skill_trees): answer = 0 for i in skill_trees : s= ''; for j in range(len(i)) : if i[j] in skill : s += i[j]; if s == skill[:len(s)] : answer += 1; return answer풀이 및 회고사실 deque 를 활용해서 문제를 풀려고 시도 했습니다. 하지만 그럴 경우 테스트 케이스 기준으로 "AECD" 가 만족하지 않기 때문에 다른 방식으로 문제를 풀었습니다. 1. s 라..
프로그래머스 LV 1 모의고사 def solution(answers): answer = [] one = [1,2,3,4,5]; two = [2,1,2,3,2,4,2,5] three = [3,3,1,1,2,2,4,4,5,5] count = [0,0,0]; for i in range(len(answers)) : if answers[i] == one[i%5] : count[0] += 1; if answers[i] == two[i%8] : count[1] += 1; if answers[i] == three[i%10] : count[2] += 1; for i in range(len(coun..
프로그래머스 LV 2 주식 가격 from collections import dequedef solution(prices): answer = []; q = deque(prices); while q : stock = q.popleft(); idx = 0; for i in q : idx += 1; if i 풀이 및 회고이전에 자바스크립트로 풀었을땐 2중 반복문으로 풀었었는데 큐를 활용해 다시 문제를 풀었습니다. 1. deque 자료구조를 활용해 prices를 저장합니다.2. q 가 있을때 까지 반복합니다.3. 현재 주식 가격을 popleft() 를 활용해 빼내어 다른 주식 가격들과 비교합니다.4. 주식 가격이 떨어진 경우 break 를 합니다..

728x90