프로그래머스 132

[프로그래머스] 할인 행사

# 완성될 값인 result_dict와 해당 길이의 개수만큼 채워진 want_dict와 비교 # try except를 사용해 만약 except로 갈 경우 # result_dict와 깉지 않아 더이상 조회할 필요가 없기에 break def solution(want, number, discount): result_dict, _range, result = {i:j for i,j in zip(want, number)}, sum(number), 0 for i in range(len(discount)-_range+1): want_dict = {i:0 for i in want} for j in range(_range): try: want_dict[discount[i+j]] += 1 except: break if wa..

알고리즘 2023.07.05

[프로그래머스] 최대공약수와 최소공배수

우선 유클리드 호제법은 - 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나. 그리고 호제법이란 - 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다. # 유클리드 호제법으로 작성한 첫 코드 def gcd(n,m): while m != False: n,m = m, n%m return n def lcm(n,m,x): return n*m//x def solution(n, m): x = gcd(n,m) return [x,lcm(n,m,x)] # 유클리드 호제법과 lambda를 사용한 코드 def solution(n, m): gcd = lambda a, b : b if not a%b else gcd(b,a%b) lcm = lambda a, b : a*b//gcd(a,b)..

알고리즘 2023.07.04

[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기

-- 문제를 잘 읽어야 올바른 조회 대상을 선정할 수 있다는 점 기억하기 -- 그리고 날짜의 경우 DATA-FORMAT을 이용해서 해당 문자를 DATE 타입으로 변경해줘야함. -- 그리고 정처기에서도 많이 나오는 LIKE 도 주의! SELECT USED_GOODS_BOARD.TITLE, USED_GOODS_BOARD.BOARD_ID, USED_GOODS_REPLY.REPLY_ID, USED_GOODS_REPLY.WRITER_ID, USED_GOODS_REPLY.CONTENTS, DATE_FORMAT(USED_GOODS_REPLY.CREATED_DATE, '%Y-%m-%d') FROM USED_GOODS_BOARD, USED_GOODS_REPLY WHERE USED_GOODS_BOARD.BOARD_ID =..

SQL 2023.07.03

[프로그래머스] 단어 변환

# 해당 문제를 bfs로 풀었고 # 처음에는 bfs로 어떻게 접근해야하는지에 대한 고민을 많이 했다. # 그래서 dfs, bfs로 접근을 한다면 [ 변경되는 값, idx ]와 같은 걸 # 어떻게 문제에 반영할 수 있는지에 대해 생각해보기로 했다. from collections import deque def solution(begin, target, words): if target not in words: return 0 w_ln = len(words) que = deque([[begin,0]]) while True: b, idx = que.popleft() visit, flag = [0]*w_ln, False if b == target: break for i in range(w_ln): for j in ..

알고리즘 2023.06.30