728x90
⬛ 프로그래머스 (카카오 기출) | LV.1 가장 많이 받은 선물 - 단순 구현 https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 1) 문제 예시를 토대로 int[][] 2차원 배열에 각 i가 j로 준 선물 값을 세팅했다. 2) 이름값은 String인데, 2차원 배열을 int형으로 선언했기 때문에, 별도의 Map을 활용해서 각 String 별 idx 값을 세팅해주고, 그 idx값을 고유의 값으로 활용하려고 했다. 3) Map ..
⬛ 프로그래머스 (카카오 기출) | LV.3 주사위 고르기 - 완전 탐색 & 이분탐색 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/258709 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 이해한 내용을 토대로 풀이 방식을 정리하였다. 주어진 주사위 배열에서 A와 B가 각각 N/2개의 주사위를 선택하여 주사위를 굴린 후, A가 이길 수 있는 경우의 수를 구하여 문제를 해결해야 하는 문제였다. 모든 주사위의 구성 조합을 생성하고, 각각의 구성에서 주사위를 굴려 이길 수 있는 ..
⬛ 프로그래머스 (카카오 기출) | LV.2 도넛과 막대 그래프 - 그래프 문풀 2024 카카오 winter intership 기출 https://school.programmers.co.kr/learn/courses/30/lessons/258711?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 세 가지 모양의 그래프와 생성된 정점의 특징을 분석하는 것이 핵심인 문제 [한 눈에 정리하면 다음과 같다] 1) 생성된 정점 : 진입 X, 진출 2개 이상 2) 도넛 그래프 개수 : 규칙성 명확하진 않으니 전체 그래프 개수..
⬛ 프로그래머스 (카카오 기출) | LV.2 택배 배달과 수거하기 2023 카카오 블라인드 Recruitment 기출 https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 솔직히 문제만 읽었을 때 내용이 확 와닿지는 않는다. 그리고 문제 내용을 이해해도 코드 구현 시 최대한 효율적으로 처리할 수 있도록 고민해야 해서 이런 류의 문제는 계속 연습해야 할 것 같다. 직접 푸는 건 실패했고, 이해한 내용을 토대로 정리했다. 최소 이동 ..
⬛ 프로그래머스 | LV.3 네트워크 - DFS, BFS 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 연결관계인 computers[][] 배열값을 활용해서 연결된 덩어리 개수가 몇개인지 찾는 문제이다. DFS이든, BFS이든 한번 호출할 때 정점들 간의 연결관계를 쭉 탐색하고 반환을 하기 때문에, 네트워크의 개수를 구하기 위해서는 DFS나 BFS 를 활용해서 총 몇 번의 호출로 모든 정점을 순회하는지 확인하면 되는 문..
⬛ 프로그래머스 | LV.2 게임 맵 최단거리 - BFS, 다익스트라 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 이 게임은(0,0) → (N-1, N-1) 위치까지 한 정점에서 다른 정점까지 최소 칸을 사용하여 먼저 도착하면 이기는 게임이다. 한 정점에서 다른 정점까지 최단경로로 가는 알고리즘 ‘다익스트라’를 활용해도 되고, BFS도 인접 정점을 먼저 방문하는 알고리즘이기 때문에 BFS를 활용하여 인접한 정점을 우선으..
⬛ 프로그래머스 | LV.2 타겟 넘버 - DFS 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제를 읽어보면 n개의 숫자를 (순서 변경 X) 더하거나 뺐을 때 target 넘버가 되는 방법의 수를 카운팅해서 리턴하라고 되어있다. 순서는 변경안되니까 따로 방문체크할 필요도 없고, 그냥 깊이 n까지 각각의 깊이에서 해당 숫자를 1)더하거나 2) 빼는 두 가지 경우만 따지면 된다. static void DFS(int lv..
⬛ 프로그래머스 | LV.2 피로도 - 완전 탐색 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 1) 최소 피로도 : 해당 던전 탐험 (전) 필요한 최소 피로도 2) 소모 피로도 : 해당 던전 탐험 (후) 소모되는 소모 피로도 3) 하루에 한 번씩만 탐험 가능한 던전이므로 → (중복 방문 X) 방문체크 4) 우리가 구해야 하는 것은 현재 k의 피로도로 탐험 가능한 최대 던전 수 (즉, 최대 깊이) 입출력 예시의 설명을 통해서..
⬛ 프로그래머스 | LV.2 모음 사전 - 완전 탐색 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제에서 길이 5이하 문자열을 알파벳 모음으로만 구성한다고 되어있다. 즉, 5가지 모음을 잘 조합해서 길이 5의 문자열을 구성해야 한다. A → AA → … UUUUU 이런 식으로 뻗어간다고 되어 있으므로 DFS로 깊이 5까지 쭉 탐색하면서 (A~U) 모음 순대로 문자열을 이어붙여 구성하는 방식이라는 것을 알 수 있다. 특히 ..
⬛ 프로그래머스 | LV.2 카펫 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚 문제 접근 방식 어떻게 풀어야 하는지 도저히 모르겠어서 풀이를 찾아봤고, 이해한 내용 토대로 정리했다. 문제 제한 조건을 잘 확인해야 한다. 1) 노란색 격자 yellow는 최소 1이상의 값이 반드시 들어온다. 즉, 적어도 1개의 노란 격자가 중앙에 반드시 존재해야 한다. 이를 만족시키려면 그림처럼 격자 크기가 가로, 세로 모두 3이상의 값을 가져야 한다. 2..
⬛ 프로그래머스 | LV.2 소수 찾기 - DFS 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚 문제 접근 방식 DFS로 만들 수 있는 모든 숫자 조합으로 깊이 뻗되, 1) 중복없이 뻗고 2) 만들어진 수가 소수인지 판별하는 방식으로 풀고자 했다. 우선 numbers 각각의 값들로 만들 수 있는 모든 경우의 숫자를 DFS로 깊이 탐색하면서 빠짐없이 만들어야 한다. 중복없이 만들어야 하기 때문에 visited 로 방문 체크하면서 뻗어갔..
⬛ 프로그래머스 | LV.2 전력망을 둘로 나누기 - DFS 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 초반에는 중심 정점을 찾아서 두 개의 트리를 나누는 게 두 트리 소속 정점 개수 차이가 최소가 된다고 생각했는데, 반례가 생기는 것을 확인했다. 따라서 모든 간선을 1개씩 빼보면서 최솟값을 찾는 방식으로 다시 접근했다. 1) 양방향 간선을 wires 배열 순회하면서 ArrayList graph에 차례대로 담아둔다...
⬛ 프로그래머스 | LV.2 할인 행사 - HashMap 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚나의 풀이 HashMap 의 형태로 정답 map을 먼저 세팅해준다 (우리가 모두 할인받기 원하는 물품별 개수) 우리가 구해야 하는 것은 ‘원하는 제품을 모두 할인받는 게 가능한 [회원 등록 날짜]’ 의 개수이다. discount[] 배열은 최소 길이 10 이상인데, 우리가 언제부터 시작하든 해당 날짜 ~ 10일간의 할인 기록 경우를..