전체 글 (64) 썸네일형 리스트형 [Today's Algorithm] 프로그래머스 - 게임 맵 최단거리 (Java / BFS) 문제: 프로그래머스 Level 2 (게임 맵 최단거리)사용 알고리즘: BFS (너비 우선 탐색), Queue, 2차원 배열 방향 벡터 (dx, dy)ROR 게임에서 상대 팀 진영에 최대한 빨리 도착하기 위해 지나가야 하는 칸의 개수의 최솟값을 구하는 문제다. 0은 벽, 1은 길이 있는 자리를 의미한다. 내 캐릭터는 (0, 0)에서 시작해 상대 팀 진영인우측 하단 끝 (maps.length - 1, maps[0].length - 1)까지 최단 거리를 찾아 이동해야 한다.만약 상대 팀 진영에 도착할 수 없다면 -1을 반환한다. 처음에는 이 미로 같은 격자판에서 어떻게 가장 빠른 길을 찾아내야 할지 막막했다...하지만 BFS의 탐색 원리와 방향 벡터(dx, dy)의 역할을 하나씩 뜯어보며 구현을 완성해 나가는.. [Today's Algorithm] 프로그래머스 - 의상 (Java / 해시) 문제: 프로그래머스 Level 2 (의상)사용 알고리즘: HashMap (해시) 및 경우의 수(조합) 수학 공식 코니가 매일 다른 옷을 조합하여 입는 것을 좋아할 때, 가진 의상들이 담긴 2차원 배열 clothes가 주어지면 서로 다른 옷의 조합의 수를 구하는 문제다. 처음에는 이 조합을 어떻게 다 만들어야 할지 고민했다. 그러다 의상의 종류별 개수를 세고 수학적 공식으로 간단하게 해결하는 방식이 훨씬 효율적이라는 것을 깨닫고 그렇게 구현해 보았다! 1. 해시와 조합 수학을 선택하게 된 과정처음에는 모든 조합을 구하는 백트래킹이나 조합 알고리즘을 사용해서 옷을 일일이 골라봐야 하나 생각했다. 하지만 옷의 종류와 개수가 주어질 때 조합을 직접 다 구현하면 코드가 불필요하게 복잡해진다.문제를 다시 분석해 보.. [Today's Algorithm] 프로그래머스 - 모음사전 (Java / 완전탐색) 문제 : 프로그래머스 Level 2 (모음사전)사용 알고리즘: 완전탐색 (DFS + 백트래킹) 주어진 모음 A, E, I, O, U만을 사용해 만들 수 있는 길이 5 이하의 모든 단어가 사전에 수록되어 있다.주어진 단어가 사전에서 몇 번째에 위치하는지 구하는 문제다. 처음에는 단어의 순번을 어떻게 계산해야 할지 고민했다. 그러다 사전에 등록되는 단어를 직접 생성하면서 순번을 세는 완전탐색 방식이 괜찮을 거 같아서 그렇게 짜봤다!1. 완전탐색을 선택하게 된 과정 처음에는 주어진 단어의 각 문자가 사전에서 어떤 위치에 있는지 계산하는 방법을 생각했다.하지만 단어를 구성하는 모음의 종류와 길이에 따라 앞에 등장하는 단어의 개수가 달라진다. 따라서 각 문자에 대한 규칙을 직접 계산하기보다는 사전의 단어를 순서대.. 이전 1 2 3 4 ··· 22 다음