알고리즘
-
[프로그래머스] Lv2 프로세스알고리즘 2025. 1. 3. 23:49
우선순위가 가장 높은 것의 인덱스를 먼저 찾는 것까지는 바로 했으나그 후 우선순위가 같은 것들이 남았을 때 어떻게 접근할지를 풀지 못 했습니다. 1. 우선순위와 인덱싱 매칭 (큐처럼 활용)2. 큐의 가장 앞에 있는 값 꺼내서 나머지 값들의 우선순위와 비교3. 꺼낸 값의 우선순위가 가장 크면 answer += 14. 아니라면 꺼낸 값을 다시 큐에 넣고 동일한 작업 반복 def solution(priorities, location): answer = 0 queue = [(i, v) for i, v in enumerate(priorities)] while queue: cur = queue.pop(0) if any(cur[1]
-
[프로그래머스] Lv1 문자열 나누기알고리즘 2024. 12. 4. 00:52
일반적인 리스트 방식으로 아래처럼 풀이 진행 후 다른 사람들의 풀이를 봤는데deque로 푼 방식이 있어서 개념에 대해 확인 후 풀어봤습니다.def solution(s): answer = 0 x_cnt = 0 y_cnt = 0 for index, i in enumerate(s): if x_cnt == y_cnt: answer += 1 x = s[index] if index == 0: x = i if x == i: x_cnt += 1 else: y_cnt += 1 retu..
-
[프로그래머스] Lv0 외계어 사전알고리즘 2024. 11. 23. 21:54
우선 spell에 있는 알파벳을 한번씩만 모두 사용한 단어가 dic에 있는지 확인해야 하기에 딕셔너리를 활용해서 spell의 알파벳별 개수를 뽑으려고 했습니다. 다만 문제를 보며 조금 헷갈렸던게 결국 spell의 알파벳들과 dic의 알파벳들이 같아야 answer가 1이 나오는건지 조금 헷갈렸는데 같아야 1이 나오는게 맞는것 같아 아래와 같은 코드로 작성했습니다.def solution(spell, dic): answer = 0 spell_dict = {alph: spell.count(alph) for alph in spell} for lst in dic: dic_dict = {alph: lst.count(alph) for alph in lst} ..
-
[프로그래머스] Lv1 카드뭉치알고리즘 2024. 11. 23. 21:07
문제를 보자마자 회사에서 활용하던 것처럼 딕셔너리가 떠올라서 접근해봤는데 효율성에서 문제가 있었으나cards1과 cards2를 함께 확인하는 코드로 구현하고 싶었는데 도저히 생각나지 않는데 계속 고민만 하다가는 시작도 못 하고 포기하게 될 것 같아 GPT 도움을 받아 완료했습니다.cards1 = ["i", "drink", "water"]cards2 = ["want", "to"]goal = ["i", "want", "to", "drink", "water"]# 1차 시도 (테스트 20, 21, 24, 25 실패)def solution(cards1, cards2, goal): answer = '' goal_dict = {value: index for index, value in enumerate(g..