[프로그래머스 lv 0] 다항식 더하기 (코딩테스트 입문)_replace 사용
·
✨ 공부 기록/알고리즘
# 첫 번째 시도def solution(polynomial): answer = '' sum_x = 0 sum_num = 0 ans_list = polynomial.split("+") for ans in ans_list: if "x" in ans: ans = ans.replace("x","") ans = ans.replace(" ","") if len(ans) > 0: sum_x += int(ans) else: sum_x += 1 else: sum_num+=int(ans) if sum_..
[프로그래머스 lv 0] 최빈값 구하기 (코딩테스트 입문)
·
✨ 공부 기록/알고리즘
# 첫 번째 시도def solution(array): answer = 0 count = [0] * (len(array)+1) n = 0 for num in array: count[num]+=1 answer = max(count) for check in count: if check==answer: n+=1 if n > 1: answer = -1 return answer 무수한... 런타임에러를 남기고 실패로 돌아갔다.  # 두 번째 시도 아, 잠시만. 최빈값의 갯수가 아니라 최빈값을 return 하는 거였다..? def solution(array): answer = 0 cou..
[프로그래머스 lv 0] 다음에 올 숫자 (코딩테스트 입문)
·
✨ 공부 기록/알고리즘
def solution(common): answer = 0 leng = len(common) if common[1]-common[0]==common[leng-1]-common[leng-2]: answer = common[leng-1] + (common[leng-1]-common[leng-2]) else: answer = common[leng-1] * (common[leng-1]/common[leng-2]) return answer
[프로그래머스 lv 0] 연속된 수의 합 (코딩테스트 입문)
·
✨ 공부 기록/알고리즘
아이디어 : SUM 값을 NUM 값으로 나눈 평균 값이 가운데에 있을 것이라는 걸 생각하면 될 것 같다. def solution(num, total): answer = [] avg = total/num if total%num==0: answer.append(avg) for i in range(1,num//2+1): answer.append(avg-i) answer.append(avg+i) else: for i in range(num//2): answer.append(total//num-i) answer.append(total//num+1+i) answer.sort..
[프로그래머스 lv 0] 안전지대 (코딩테스트 입문)
·
✨ 공부 기록/알고리즘
def solution(board): answer = 0 bomb = [[-1,1],[0,1],[1,1],[-1,0],[1,0],[-1,-1],[0,-1],[1,-1]] x = len(board[0]) y = len(board) new_board = [[0]*x for _ in range(y)] for i in range(x): for j in range(y): if board[i][j]==1: new_board[i][j] = 1 for idx in bomb: if i+idx[0]>=0 and i+idx[0]=0 and j+idx[1]
[프로그래머스 lv 0] 분수의 덧셈 (코딩테스트 입문)_Fraction 사용
·
✨ 공부 기록/알고리즘
아이디어 : 일단 분모 통분을 먼저 해야할 것 같다. 최소공배수를 어떻게 찾지...? 아니면 어차피 숫자가 그렇게 크지 않으니 두 분모를 곱하는 것도 나쁘진 않을 것 같다. 20/30이 있을 때 10으로 나누어 진다는건 어떻게 알지...? -> 결국은 Fraction이라는 라이브러리를 사용했다.  from fractions import Fractiondef solution(numer1, denom1, numer2, denom2): answer = [] if denom1==denom2: new_numer = numer1+numer2 new_denom = denom1 else: new_numer = numer1*denom2+numer2*denom1..
[프로그래머스 lv 0] 평행 (코딩테스트 입문)
·
✨ 공부 기록/알고리즘
아이디어 : x, y축과 평행한 경우는 없고. 4개의 점을 두개씩 이으니까 4C2=6가지의 경우만 살펴보면 될 것 같다.x값을 뺀 것, 그리고 y값을 뺀것의 절댓값을 이용하면 될 것 같은데... 그 값의 비율을 보면 될 것 같다. def solution(dots): answer = 0 for i in range(len(dots)-1): for j in range(i+1, len(dots)): idx_list = [0,1,2,3] idx_list.remove(i) idx_list.remove(j) if abs(dots[i][1]-dots[j][1])/abs(dots[i][0]-dots[j][0]) == a..
[프로그래머스 lv 0] 옹알이 (1) (코딩테스트 입문)
·
✨ 공부 기록/알고리즘
# 첫 번째 시도def solution(babbling): answer = 0 datas = ["aya","ye","woo","ma"] for bab in babbling: count = 0 num_count = 0 for data in datas: if data in bab: count += len(data) num_count += 1 if len(bab)==count and answer  # 두 번째 시도 첫번째처럼 했을때 ma+aya -> maya 같은 경우를 잡아내지 못한다.아, 그리고 문제 이해를 잘못한게, 한단어에 얼마나 많은 음절 발음하느냐가 아니라 얼마..
[프로그래머스 lv 1] K번째수 (정렬)
·
✨ 공부 기록/알고리즘
def solution(array, commands): answer = [] for command in commands: new_array = array[command[0]-1:command[1]] new_array.sort() answer.append(new_array[command[2]-1]) return answer