파이썬 알고리즘 : 기능개발

2024년 4월 26일 알고리즘 문제풀이 문제 기능개발 난이도 Lv. 2 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def solution(progresses, speeds): answer = [] idx = 0 while idx < len(progresses): cnt = 0 for i in range(len(progresses)): progresses[i] += speeds[i] while idx < len(progresses): if progresses[idx] >= 100: idx += 1 cnt += 1 else: break if cnt: answer.append(cnt) return answer 가장 앞에 있는 기능이 100이 될때까지 모든 값들의 크기를 늘렸다. 이후 첫번 째 기능 개발이 완료되었을 때 100이 넘는 것들을 같이 처리해주고 갯수를 세주었다. ...

2024년 4월 26일 · 1 분 · 배준수

파이썬 알고리즘 : 소수 찾기

2024년 4월 25일 알고리즘 문제풀이 문제 소수 찾기 난이도 Lv. 1 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def solution(n): answer = 0 for num in range(2,n+1): if num == 2 or num == 3: answer += 1 continue if not num%2: continue for i in range(2,int(num**(0.5))+1): if not num%i: break else: answer += 1 return answer

2024년 4월 25일 · 1 분 · 배준수

파이썬 알고리즘 : 주식가격

2024년 4월 23일 알고리즘 문제풀이 문제 주식가격 난이도 Lv. 2 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def solution(prices): answer = [0 for _ in range(len(prices))] stk = [] for i in range(len(prices)): price = prices[i] if not stk: stk.append([price,i]) continue while stk: now_price, now_time = stk[-1] if price < now_price: answer[now_time] = (i-now_time) stk.pop() else: break stk.append([price,i]) if stk: while stk: p,t = stk.pop() answer[t] = len(prices)-1-t return answer

2024년 4월 23일 · 1 분 · 배준수

파이썬 알고리즘 : 데이터 분석

2024년 4월 19일 알고리즘 문제풀이 문제 데이터 분석 난이도 Lv. 1 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 def solution(data, ext, val_ext, sort_by): answer = [] for x in data: arr = dict() arr["code"] = x[0] arr["date"] = x[1] arr["maximum"] = x[2] arr["remain"] = x[3] if arr[ext] < val_ext: answer.append(x) if sort_by == 'code': idx = 0 elif sort_by == 'date': idx = 1 elif sort_by == 'maximum': idx = 2 else: idx = 3 answer.sort(key = lambda x: (x[idx])) return answer

2024년 4월 19일 · 1 분 · 배준수

파이썬 알고리즘 : Score of a String

2024년 4월 18일 알고리즘 문제풀이 문제 Score of a String 난이도 Easy 코드 1 2 3 4 5 6 class Solution: def scoreOfString(self, s: str) -> int: answer = 0 for i in range(len(s)-1): answer += abs(ord(s[i]) - ord(s[i+1])) return answer ord() : 문자의 아스키코드 숫자 값을 반환 chr() : 숫자의 아스키코드 숫자 값을 반환

2024년 4월 18일 · 1 분 · 배준수

파이썬 알고리즘 : 큰 수 만들기

2024년 4월 16일 알고리즘 문제풀이 문제 큰 수 만들기 난이도 Lv. 2 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 def solution(number, k): stk = [] for num in number: # stk가 비었으면 넣음 if not stk: stk.append(num) continue if k > 0: # 지금 주목하는 수가 방금 넣은 수보다 크다면 뺸다. while stk[-1] < num: stk.pop() k -= 1 # 더이상 뺄 것이 없거나 더이상 빼면 안되면 반복문 종료 if not stk or k <= 0: break stk.append(num) # 모두 순회했는데 아직 뺄것이 남았다면 가장 뒤에것만뺀다. if k: stk = stk[:-k] answer = ''.join(stk) else: answer = ''.join(stk) return answer

2024년 4월 16일 · 1 분 · 배준수

파이썬 알고리즘 : 의상

2024년 4월 15일 알고리즘 문제풀이 문제 의상 난이도 Lv. 2 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def solution(clothes): answer = 0 arr = dict() for x in clothes: [n,t] = x if t in arr: arr[t] += 1 else: arr[t] = 1 cnt = 1 for a,b in arr.items(): cnt *= (b+1) answer = cnt-1 return answer

2024년 4월 15일 · 1 분 · 배준수

파이썬 알고리즘 : 실패율

2024년 4월 12일 알고리즘 문제풀이 문제 실패율 난이도 Lv. 1 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 def solution(N, stages): answer = [] arr = [0 for _ in range(N+2)] arr_f = [0 for _ in range(N+2)] for i in range(len(stages)): now = stages[i] for j in range(1,now+1): arr[j] += 1 arr_f[now] += 1 tmp = [] for i in range(1,N+1): if arr[i] == 0: tmp.append([0,i]) else: tmp.append([(arr_f[i]/arr[i]),i]) tmp.sort(reverse=True, key=lambda x : (x[0],-x[1])) for i in range(N): answer.append(tmp[i][1]) return answer

2024년 4월 12일 · 1 분 · 배준수

파이썬 알고리즘 : 나누어 떨어지는 숫자 배열

2024년 4월 11일 알고리즘 문제풀이 문제 나누어 떨어지는 숫자 배열 난이도 Lv. 1 코드 1 2 3 4 5 6 7 8 9 10 def solution(arr, divisor): answer = [] for i in arr: if not i%divisor: answer.append(i) answer.sort() if answer: return answer else: return [-1]

2024년 4월 11일 · 1 분 · 배준수

파이썬 알고리즘 : 소수 찾기

2024년 4월 9일 알고리즘 문제풀이 문제 소수 찾기 난이도 Lv. 2 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 from itertools import permutations def check_prime(n): if n < 2: return False elif n<4: return True if not n%2: return False for i in range(2,int(n**(0.5))+1): if not n%i: return False else: return True def make_arr(arr): result = [] n = len(arr) tmp = [] for i in range(1,n+1): tmp += list(permutations(arr,i)) for a in tmp: result.append(int("".join(a))) return result def solution(numbers): answer = 0 result = set() arr = list(numbers) arr = make_arr(arr) arr = set(arr) for i in arr: if check_prime(int(i)): result.add(int(i)) return len(result)

2024년 4월 9일 · 1 분 · 배준수