알고리즘/프로그래머스
-
문제 코드 def solution(N, number): if N == number: return 1 answer = -1 arr = [set() for _ in range(8)] for i in range(len(arr)): arr[i].add(int(str(N)*(i+1))) for i in range(1,8): for j in range(i): for op1 in arr[j]: for op2 in arr[i-j-1]: arr[i].add(op1+op2) arr[i].add(op1-op2) arr[i].add(op1*op2) if op2 != 0: arr[i].add(op1//op2) if number in arr[i]: answer = i+1 break return answer 풀이방법 이 문제는 동..
[프로그래머스] N으로 표현 [Python]문제 코드 def solution(N, number): if N == number: return 1 answer = -1 arr = [set() for _ in range(8)] for i in range(len(arr)): arr[i].add(int(str(N)*(i+1))) for i in range(1,8): for j in range(i): for op1 in arr[j]: for op2 in arr[i-j-1]: arr[i].add(op1+op2) arr[i].add(op1-op2) arr[i].add(op1*op2) if op2 != 0: arr[i].add(op1//op2) if number in arr[i]: answer = i+1 break return answer 풀이방법 이 문제는 동..
2023.09.12 -
풀이 과정 1️⃣ 곡괭이 수 * 5 만큼의 광석만 캘 수 있으므로 광석의 크기가 이보다 더 클 경우 잘라준다. 2️⃣ 광물을 연속해서 5개를 캐야하므로 5개씩 광물을 잘라서 새로운 배열에 저장한다. 3️⃣ 광물은 주어진 순서대로, 곡괭이는 순서가 상관없으므로 광물을 다이아몬드, 철, 돌 순서대로 정렬한다. (중요💡) 4️⃣ 광물의 갯수만큼 반복하니 시간 복잡도는 O(N)이된다. 1번 풀이과정 코드 # 곡괭이의 수를 구한다. for i in picks: sum += i #곡괭이로 캘 수 있는 광물만큼 자른다. num = sum * 5 if len(minerals)>sum: minerals = minerals[:num] 2번 풀이과정 코드 #광물들을 조사한다. new_minerals =[[0,0,0] for..
[프로그래머스] 광물 캐기 [Python]풀이 과정 1️⃣ 곡괭이 수 * 5 만큼의 광석만 캘 수 있으므로 광석의 크기가 이보다 더 클 경우 잘라준다. 2️⃣ 광물을 연속해서 5개를 캐야하므로 5개씩 광물을 잘라서 새로운 배열에 저장한다. 3️⃣ 광물은 주어진 순서대로, 곡괭이는 순서가 상관없으므로 광물을 다이아몬드, 철, 돌 순서대로 정렬한다. (중요💡) 4️⃣ 광물의 갯수만큼 반복하니 시간 복잡도는 O(N)이된다. 1번 풀이과정 코드 # 곡괭이의 수를 구한다. for i in picks: sum += i #곡괭이로 캘 수 있는 광물만큼 자른다. num = sum * 5 if len(minerals)>sum: minerals = minerals[:num] 2번 풀이과정 코드 #광물들을 조사한다. new_minerals =[[0,0,0] for..
2023.05.06