반응형

Coding Test 102

[Lv.2] 광물 캐기 [프로그래머스_코딩테스트] [구현, 최적 선택] [40분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr3가지의 광물 종류와 동일한 3가지의 곡괭이 종류가 주어지고 각각 서로 매칭했을 때의 피로도가 주어진다. 이때 곡괭이(pick)의 갯수 배열이 주어지고 광물들을 캐는 순서가 주어질 때 최소한의 피로도를 찾는 방법 구하기. (곡괭이 한 번 사용시 5번 고정으로 연달아 사용해야 함)🧠 나의 접근 방식과 시행착오문제는 풀다가 중간에 멈추었기에 내가 코드를 짜려고 시도한 방식에 대해서 정리를 하려고 코드와 같이 몇글자 적어본다. 일단 핵심으로 ..

[Lv.2] 전력망을 둘로 나누기 [프로그래머스_코딩테스트] [DFS, Greedy] [50분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr송전탑 노드가 숫자들로 주어질 때 각 숫자를 연결하는 wires라는 배열이 주어진다. (ex. [[1, 2], [2, 3], [3,4]]) 이 때 연결을 하나를 잘라서 2개의 연결로 나눴을 때, 나뉘어진 노드들의 개수의 차가 제일 적은 경우의 절대값을 구하기 🧠 나의 접근 방식과 시행착오사실 문제를 봤을 때 알고리즘에서 약한 DFS, BFS 문제란 걸 직감하고 틀릴 것 같긴 했지만 재귀를 쓴다는 DFS 방식을 알고 있어서 시도를 해보았다...

[Lv.2] 귤 고르기 [프로그래머스_코딩테스트] [Greedy, 정렬] [30분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr수확한 귤 사이즈 별로 배열 (tangerine)이 주어질 때 귤 k개를 골라서 크기가 서로 같은 것을 최대로 해서 값을 구하는 문제🧠 나의 접근 방식과 시행착오풀이에 약 40분 정도 소요. 더 나은 자료구조를 생각해보려고 했다가 잘 쓰지 않던 SortedList 같은 것도 고민했으나 IComparer를 직접 구현해야 하는 부분이 있어서 시간 소요만 함.. 일단 Count를 size별로 체크한 뒤에 더 많은 개수부터 해서 내림차순으로 정..

[Lv.1] 예산 [프로그래머스_코딩테스트] [Greedy, 정렬] [25분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr예산 금액인 budget이 주어지고 d 배열에 각 부서에서 신청한 금액을 정렬되지 않은 채로 전달받았을 때 최대 몇개의 부서에 지원을 할 수 있는지 계산 문제. 🧠 나의 접근 방식과 시행착오문제 푼 시간이 지금까지 봤던 문제들 중에 제일 빨랐던 10분. 해당 문제는 한정된 수치로 최대 몇개를 만들 수 있는지 얻어오는 문제로 작은 수부터 큰 숫자로 올림차순 정렬을 시키고 예산에서 빼면서 count를 증가시키면 된다. 문제의 길이에 비해서 오..

[Lv.1] 대충 만든 자판 [프로그래머스_코딩테스트] [문자열 매핑] [25분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제가 길게 적혀 있지만 실제로는 targets 배열에 나와있는 문장들을 순회하면서 해당 문장의 알파벳들을 keyMap에서 순서대로 찾아서 가장 빠른 순서대로 더한 값을 반환하는 문제이다. 🧠 나의 접근 방식과 시행착오실제 푼 시간은 약 20분 정도 걸렸다. 문제가 복잡하지 않았음. 아래의 코드처럼 문제를 해결했다. 코드는 작성하다 보니 for가 3중첩이나 되고 있어서 시간 초과가 걸릴 것으로 생각했으나 제한사항으로 길이가 그렇게 길지 ..

[Lv.1] 옹알이(2) [프로그래머스_코딩테스트] [문자열 필터링] [30분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr아이가 말할 수 있는 단어 배열이 주어지고 단어가 연달아 혼합된 문장의 배열이 주어질 때 발음이 가능한 문장인 경우 count를 증가시켜서 몇개인지 찾는 문제🧠 나의 접근 방식과 시행착오단순하게 생각해서 반복을 돌리면서 매칭되는 단어들을 찾아나갔다. 생각보다 무식한 방향으로 string에 있는 IndexOf 함수를 써서 가능한지 체크를 했었다. 문제를 풀다 보면 한 두개의 변수가 더 늘어나고 지저분해지면서 코드가 점점 복잡해지고 시간이 ..

[Lv.2] 연속된 부분 수열의 합 [프로그래머스_코딩테스트] [투포인터, 슬라이딩 윈도우] [40분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr오름차순으로 정렬된 수열을 sequence로 주어주고, 부분수열의 합이 k가 되는 구간을 찾는 문제. 구간이 여러개가 나온다면 구간의 길이가 짧으면서 시작 인덱스가 작은 것으로 결정한다.🧠 나의 접근 방식과 시행착오투포인터 문제로 접근은 올바르게 시작은 하였다. 다만 이 문제를 풀면서 끝 인덱스를 마지막 숫자의 인덱스로 접근을 했었다. (기존에 풀었던 다른 투포인터 문제를 해당 방향으로 풀면서 교차되는 케이스에 반복을 종료했던 케이스가 ..

[Lv.1] 달리기 경주 [프로그래머스_코딩테스트] [해시, 순위 갱신] [30분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr해당 문제는 달리기 선수들의 1등부터 차례대로 배열이 players로 주어지고, 추월할 때마다 이름을 호명한 배열이 callings로 주어질 때 마지막으로 달리기 순서 결과 이름 배열을 도출하는 문제이다. 🧠 나의 접근 방식과 시행착오단순하게 생각해서 그냥 배열에 있는 이름과 그 이전 등수의 이름을 Swap 시키는 것으로 생각해서 풀어보았다. 맨 처음 해결시도시에는 해당 이름의 등수를 찾기 위해서 Array.FindIndex를 사용했었는..

[Lv.3] 섬 연결하기 [프로그래머스_코딩테스트] [MST, Greedy, UnionFind, Kruskal]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr해당 문제는 각 섬을 하나로 연결하는 최소 비용을 구하는 문제로 costs는 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 와 같은 식으로 주어지고 n개의 섬을 연결해야 한다. (cost는 섬 1, 섬 2, 비용 이런식으로 3개의 데이터가 하나의 묶음으로 연결) 🧠 나의 접근 방식과 시행착오일단 익숙치 않았던 MST 문제를 해결하는 거에 대해서 시간이 걸려서 해결은 역시 제대로 안 된 상태. 필자가 푸..

[Lv.1] 햄버거 만들기 [프로그래머스_코딩테스트] [스택, 슬라이딩윈도우]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr해당 문제는 햄버거를 재료순서대로 쌓아서 완성된 개수를 구하는 문제로 int배열(재료들 순서)이 주어진다. 🧠 나의 접근 방식과 시행착오스택 문제로 바로 파악하고 스택으로 접근하려고 했던 거에서 실수를 한 듯 하다. 스택을 사용하게 되면 push, peek, pop에 집중을 하게 되는데 이런 경우 순서가 중요한 상태로 쌓였을 때 이전에 쌓인 것들을 가져와서 비교하는 부분에서 자연스럽게 막히게 되는 듯 하다. 이전에 푼 문제에서 ..

반응형