[LeetCode] 49. Group Anagrams(정렬하지 않고 풀 수 있지 않을까?) [LeetCode] 49. Group Anagramshttps://leetcode.com/problems/group-anagrams입력값으로 주어진 문자열에서 애너그램끼리 그룹화한 결과를 반환하는 것이 문제의 요구사항이다. 문자를 구성하는 철자의 개수, 즉 구성이 동일하다면 같은 그룹에 속한다. 1. 시작점: 정렬 없이 풀 수 있을 거라 생각했다애너그램 단어들은 정렬을 하면 같은 문자열이 된다. 따라서 정렬 후 같은 문자가 되는지 여부를 판단하여 제출하면 된다. 일반적인 모범답안은 아래와 같다(출처: 파이썬 알고리즘 인터뷰).import collectionsclass Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: .. 2025. 4. 13. [프로그래머스]타겟 넘버 ** 개인적 공부를 위한 포스팅일 뿐이므로 신뢰성은 보장할 수 없다. ** 30분 안에 풀었으면 Mastered 카테고리이다. 문제에 대한 이해 각 리스트 원소 별로 플러스 연산과 마이너스 연산 중에 하나만 택하면 되기 때문에 간단한 상태 트리를 그려보면 이해가 쉽다. 정석적인 DFS 문제이다. 나의 풀이 def solution(numbers, target): answer = 0 def dfs(depth, result): nonlocal answer if depth == len(numbers): if result == target: answer += 1 return else: dfs(depth+1, result+numbers[depth]) // 플러스 연산을 할 경우 dfs(depth+1, result-.. 2023. 11. 15. [프로그래머스]기능개발(다시풀기) ** 개인적 공부를 위한 포스팅일 뿐이므로 신뢰성은 보장할 수 없습니다. 이전에 풀었던 문제이나 다시 보니 또 초면이라^^; 바로 풀이하지 못했고, 이전에 제출한 답안이 상당히 비효율적인 면이 있어서 다시 풀었다. 이전 풀이 from collections import deque def solution(progresses, speeds): dq = deque() for i in range(len(progresses)): dq.append([progresses[i], speeds[i]]) # print(dq) def speed_up(): for idx, val in enumerate(dq): p, s = val dq[idx][0], dq[idx][1] = p + s, s # print(dq) cnt = 0 .. 2023. 11. 15. [프로그래머스][예산] 정렬을 이용한 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 이해: 각 부서에 지원할 수 있는 전체 예산 금액 budget 이 정해져 있다. 정해진 금액 budget과 부서별로 필요한 예산이 담긴 배열 d가 주어질 때, 예산 한도 내에서 지원할 수 있는 최대 부서의 수를 구하라. 이 문제를 정리하는 이유: 부서별 필요 예산이 담긴 d를 오름차순으로 정렬하기만 하면 매우 쉽게 풀 수 있는 문제를 또 DFS로 풀려고 했다. 지원할 수 있는 부서의 .. 2023. 1. 23. [프로그래머스][점프와 순간 이동] DFS를 사용하지 않는 풀이 https://school.programmers.co.kr/learn/courses/30/lhttps://school.programmers.co.kr/learn/courses/30/lessons/12980#essons/12980# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 이해: 위치 0부터 점프나 순간이동을 해서 목적지 N까지 도달한다. 점프를 할 경우 한 칸을 점프할 때마다 배터리가 하나씩 소모된다. 예를 들어 3칸을 점프했다면 소모된 배터리는 3이다. 순간이동을 할 경우 현재까지 이동한 거리 즉. 현재 인덱스에서 2배가 된 인덱스'로.. 2023. 1. 22. 이전 1 2 3 4 다음