반응형

2025/05 35

[Lv.1] 공원 산책 [프로그래머스_코딩테스트] [시뮬레이션] [25분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krS라는 지점에서 시작해서 이동 루트를 string으로 적은 배열을 주어주고 이동 불가 지점과 벽에 막힌 경우 해당 이동 명령은 무시하게 한 후 최종 결과를 도출해 내는 문제 (X는 이동 불가, O는 이동 가능)🧠 나의 접근 방식과 시행착오간단하게 생각해서 시작점에서 명령(routes)를 하나씩 돌리면서 이동 가능한 지 체크하고 이동시키면 된다. (필자는 참고로 한 번 실수로 좌표가 마이너스가 될 경우를 누락해서 런타임 에러가 났었다. 이..

[Lv.2] 카펫 [프로그래머스_코딩테스트] [완전 탐색, 수학] [40분]

🔍 문제 요약https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr노란색 격자가 카펫의 중앙에 들어가게 하면서 갈색 격자로 감싸는 카펫 모양을 만드려고 할 때 brown, yellow 격자의 개수가 주어졌을 때 가로 세로 격자 길이를 구하기🧠 나의 접근 방식과 시행착오대강 40분 정도 걸린 듯 하다. 처음에는 아래 주석처럼 yellow 개수를 구하는 식을 일단 변수 2개 (노랑 가로, 노랑 세로)를 써서 공식을 세우고, brown 개수도 찾는 식을 세운다. (노랑 가로 * 2 + 노랑 세로 * 2 + 4..

[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를 사용했었는..

반응형