본문 바로가기
반응형

프로그래밍/알고리즘 & 자료구조73

[프로그래머스] 기능개발 with 파이썬 / 큐와 스택 자료구조 이용 # 배포순서와 개발속도를 고려하여 배포되는 숫자 구하기 progresses = [95, 90, 99, 99, 80, 99] speeds = [1, 1, 1, 1, 1, 1] # 정답 : [1, 3, 2] ## (1) 현재까지 진행률과 개발속도를 고려해서 배포까지 남은 날짜 구하기 ## (2) 남은 날짜와 배포순서를 고려하여 배포하기. 배포순서를 고려하여 앞에서부터 처리되야 하기 때문에 que 자료구조를 사용하거나, list.pop(0)을 사용함 1. math.ceil() 사용하여 남은 날짜 구하고, que 자료구조를 사용해 비교하기 import queue import math def solution(progresses, speeds): q = queue.Queue() for i in range(len(p.. 2023. 4. 14.
[프로그래머스] 분수의 덧셈 with 파이썬 / 최대 공배수, 최대공약수, 약수 구하기 분수의 덧셈 : 약분은 최대공약수로 가능하다. numer1=1 denom1=2 numer2=3 denom2=4 # 답 : [5, 4] 1. math.gcd(a,b) import math def solution(numer1, denom1, numer2, denom2): n3= numer1 * denom2 + denom1 * numer2 d3= denom1 * denom2 nn3 = n3// math.gcd(n3, d3) dd3 = d3// math.gcd(n3, d3) return [nn3, dd3] 2. range(시작, 끝, 간격) : 간격에 음수가 오는 경우, range가 거꾸로 진행된다. def gcd1(a,b): for i in range(min(a,b), 0, -1): if a%i ==0 and.. 2023. 4. 13.
[프로그래머스] 연속된 수의 합 with 파이썬 # 연속된 num의 합 = total num = 5 total = 5 # 정답 : [-1, 0, 1, 2, 3] 1. 중간값 이용 : 식 세우기, num//2를 통해 양쪽에 몇 개 있는지 알 수 def solution(num, total): if num % 2 == 1: mid = total // num return [i for i in range(mid - num // 2, mid + num // 2 + 1)] else: mid = total // num + 1 return [i for i in range(mid - num // 2, mid + num // 2)] 2. while, i+=1 def solution2(num, total): li = [i for i in range(-num - total,.. 2023. 4. 12.
[프로그래머스] 캐릭터의 좌표 with 파이썬 keyinput = ["down", "down", "down", "down", "down"] board = [7, 9] ## 답 : [0, -4] 1. 비교문, 부등호로 board의 범위 설정 def solution(keyinput, board): x, y = 0, 0 for i in keyinput: if -(board[1] // 2) < y < board[1] // 2: if i == 'up': y += 1 elif i == 'down': y -= 1 if -(board[0] // 2) < x < board[0] // 2: if x == 'right': x += 1 elif i == 'left': x -= 1 return [x, y] 2. max(), min()으로 범위 제한 def solution2.. 2023. 4. 11.
[프로그래머스] 로그인 성공? with 파이썬 id_pw = ["rabbit04", "98761"] db = [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]] ## 정답 : false 1. 비교문 def solution(id_pw, db): for i in db: if id_pw[0] == i[0]: if id_pw[1] == i[1]: return 'login' else: return 'wrong pw' return 'fail' 2. dict.get() def solution2(id_pw, db): db = dict(db) if db.get(id_pw[0]): if db.get(id_pw[0]) == id_pw[1]: return 'login' else: return 'wr.. 2023. 4. 10.
[프로그래머스] 삼각형의 완성조건 (2) with 파이썬 - 삼각형 완성 조건 : 가장 긴 변 max(sides): result += 1 # sides 안에 가장 긴 변이 없는 경우 for i in range(max(sides), sum(sides)): if sum(sides) > i: result += 1 return result 1-1. list compression def solution2(sides): n1 = .. 2023. 4. 9.
반응형