본문 바로가기

Wook's 개척일기234

[프로그래머스 : 레벨3] 여행경로 : DFS(Java) 이번문제는 여러 테스트케이스에서 생각을 하지 못해서 문제를 풀지 못했다. 그래서 결국 답지를 봤다. 일단 문제부터 살펴보자. 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 r.. 2021. 6. 22.
[프로그래머스 : 레벨 3] 단어변환 : BFS(Java) 이번문제는 내가 DFS 알고리즘으로 문제를 풀려다가 중복되는 단어에서 어딜 먼저 접근해야하나라는 부분에서 막혀 답지를 봤다. 일단 문제부터 보자. 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다... 2021. 6. 21.
[프로그래머스 : 레벨 3] 네트워크 : DFS(Java) 이번 문제는 생각외로 쉬웠다. 어떤 알고리즘으로 문제를 풀어야 할지를 먼저 생각하니 금방 풀렸던것 같다. 문제부터 살펴보자. 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 .. 2021. 6. 21.
[프로그래머스 : 레벨 2] 타겟 넘버 : DFS(Java) 이번 문제는 내가 풀어보려다가 시간이 오래 지체할거같아 답지를 봤다. 이번 문제는 DFS로 풀어야 겠다는것도 알겠고 했는데 해당 문제를 어떻게 구현해야할지 몰랐다. 왜냐면 더하기와 빼기 했을때의 경우의수를 어떻게 구하지 했는데 답에서는 더하기 했을때와 빼기 했을때를 더한것으로 처리했다. 일단 문제를 자세히 살펴보자. 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 .. 2021. 6. 21.