본문 바로가기
반응형

풀이23

[프로그래머스] 메뉴 리뉴얼 Python Code 프로그래머스 메뉴 리뉴얼을 파이썬으로 풀어보겠다. 이번 문제의 난이도는 레벨 2고 2021년 카카오 문제다. 비교적 최근 문제라 개인적으로 약간 까다로웠다. 문제 가장 많이 주문된 메뉴들을 찾아 세트의 메뉴 개수에 맞게 코스 메뉴로 구성하는 문제이다. 구현 combinations 밖에 생각나지 않았다. 우선 combinations를 써서 각 order의 조합을 모두 구한 후 string으로 합쳐서 dict를 만들었다. 그리고 dict의 value가 가장 높은 값을 찾아서 answer에 더해줬다. 마지막으로 사전순 정렬을 위해 sort 해서 정답을 리턴했다. 코드 from itertools import combinations def solution(orders, course): answer = [] for.. 2022. 9. 1.
[프로그래머스] 튜플 Python Code 프로그래머스 튜플을 파이썬으로 풀어보겠다. 이번 문제의 난이도는 레벨 2고 2019년 카카오 문제다. 문제 문자열을 파싱 해서 제일 큰 리스트를 반환하면 되는데 여기서 집합의 원소 순서가 바뀔 수 있기에 한 번 더 생각을 해야 하는 문제다. 구현 문제를 차례차례 해결해 나가는 방식으로 문자열 파싱을 한 후 리스트의 크기로 정렬하고 작은 리스트부터 검사해서 결과에 추가를 했다. 코드 def solution(s): answer = [] num='' flag=0 for c in s[1:-1]: if c=='{': num='' temp=[] flag=1 elif c==',' and flag: temp.append(int(num)) num='' elif c=='}': temp.append(int(num)) ans.. 2022. 9. 1.
[프로그래머스] 행렬 테두리 회전하기 Python Code 프로그래머스 행렬 테두리 회전하기를 파이썬으로 풀어보겠다. 이번 문제의 난이도는 레벨 2고 2021년 문제다. 예전 문제와 비교를 해보면 최신 문제가 확실히 약간 더 난이도가 있다. 문제 행렬의 일부분에서 테두리만 시계방향 회전시키는 문제이다. 회전시킬 때 가장 작은 값을 결과에 더해주면 된다. 구현 다른 방법은 생각나지 않았다. 정직하게 2차원 리스트를 생성하고 쿼리를 읽어서 그 리스트의 부분을 회전시키면서 min값을 찾도록 했다. 코드 import math def solution(rows, columns, queries): arr = [] for i in range(rows): temp=[] for j in range(columns): temp.append((j+1)+(i*columns)) arr.a.. 2022. 9. 1.
[프로그래머스] 타겟 넘버 Python Code 프로그래머스 타겟 넘버를 파이썬으로 풀어보겠다. 이 문제는 레벨 2로 분류되어 있고 DFS, BFS로 풀이할 문제다. 문제 구현 어차피 완전 탐색이지만 BFS에 적응할 겸 BFS로 구현해보겠다. 코드 def solution(numbers, target): data = [0] for num in numbers: res = [] for val in data: res.append(val + num) res.append(val - num) data = res return data.count(target) data가 변화하는 flow를 [1,1,1]로 보겠다. [0] -> [1, -1] -> [2, 0, 0, -2] -> [3, 1, 1, -1, 1, -1, -1, -3] 이렇게 변하여 타겟 값이 몇 개인지 확인.. 2022. 8. 30.
반응형