728x90
⬛ 프로그래머스 | LV.2 우박수열 정적분 - 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제를 다 이해하고 나면 그렇게 어려운 문제가 아닌데, 문제에서 주어진 ranges에 대한 내용이 이해가 안돼서 애를 먹었다. [풀이] 1) a는 0에서 a만큼 떨어진 지점, b는 맨뒤에서 b만큼 떨어진 지점으로 보아야 한다. 2) 또한, 사다리꼴 공식을 활용해서, 해당 범위에 대한 누적 합을 구해야 한다. 3) ..
⬛ 프로그래머스 | LV.1 달리기 경주 - HashMap 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/178871# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 기존 players의 등수가 주어지면 calling가 불리는 이름을 앞등수와 swap시켜 추월시키는 문제이다. 그런데, 처음에 풀면서 시간 초과가 났다. players는 최대 5*10^4 이고, callings가 최대 10^6 이기 때문에 이중for문 돌면 10^10이 되어 시간 초과가 난다. 즉, 이..
⬛ 프로그래머스(카카오 기출) | LV.2 주차 요금 계산 - 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 1) HashMap 형태를 활용해서 입/출차 정보를 기록하려고 했다. → key로 식별할 차 번호는 String으로 담고, → value에는 차량 별 주차시간 (분) 이 담기도록 했다. 2) 데이터 기록 후, map의 value 값이 0보다 작거나 같은 케이스 처리 주의 사항에 보면, 입차 정보만 있고..
⬛ 프로그래머스(카카오 기출) | LV.3 합승 택시 요금 - 플로이드 or 다익스트라 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보자마자 다익스트라나 플로이드를 떠올렸고, 실제로 두 방식으로 다 풀 수 있는 문제였다. 첫 시도 때는 시작점이 고정되어 있어서 다익스트라를 시도해볼까 하다가, 경유지가 다양하게 존재할 수 있기 때문에 편하게 플로이드로 all-to-all 최단 거리를 먼저 구해놓고, 편하게 모든 경유지를 거쳐서 갱..
⬛ 프로그래머스 (Dev-Matching 기출) | LV.2 행렬 테두리 회전하기 - 구현 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 시계방향은 (우→하→좌→상) 순으로 돌아야 하고, 매번 prev로 직전값을 현재 map에 담으면서 움직인다. 매번 쿼리로 들어오는 (x1, y1, x2, y2) 의 테두리만 돌아야 한다. (1) map[][] 2차원에 차례로 값을 세팅해준다. (2) rotate() 함수에 query를 보내..
⬛ 프로그래머스 (카카오 기출) | LV.2 문자열 압축 - 문자열 활용 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 처음에는 절반까지만 자르면 되지 않을까 생각했는데, 마지막 케이스의 경우 17글자인데도 결국 더 짧게 압축하는 방법이 없어서 17을 반환한 것을 보고 split 단위를 전체 글자 수 까지 하나씩 늘려가며 푸는 것으로 마음을 굳혔다. s 글자수가 최대 10^3이라서 이중for문 돌아도 10^6이고,..
⬛ 프로그래머스 | LV.1 바탕화면 정리 - 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 레벨 1 문제여서 복잡하게 생각하지 않고, 최대한 문제 내용대로 이해하는 데 초점을 맞춰서 풀었다. S좌표에서 E좌표로 드래그해서 모든 파일 선택하는 게 목표인 문제이다. 좌표 상은 격자표 위의 (x,y) 좌표여서,시작점은 상관없는데, E 끝점에는 +1씩 처리해줘야 문제대로 풀린다. S→E 로 드래그 : 가장 왼쪽&..
⬛ 프로그래머스 (카카오 기출) | LV.3 표현 가능한 이진트리 - 분할 정복 & 재귀 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚 문제 설명 이해 💚 예제 설명 포화 이진 트리를 구성할 수 있는 개수는 다음과 같다. 1) 58 을 표현하기 2) 7 을 표현하기 3) 42 를 표현하기 4) 5를 표현하기 5) 95를 표현하기 [풀이 순서] 1) number → 이진수 변환 2) 더미노드를 현재 이진수 str 앞에 (0개~ 현재...
⬛ 프로그래머스 | LV.2 혼자서 하는 틱택토 - 경우의 수 & 구현 https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 1차 제출 시에는 DFS 로 완전탐색하여 구현하고자 했다. 매번 O→X 의 규칙대로 번갈아 다음 깊이로 이동하되, 빙고일 경우는 안되도록 깊이 이동하면 된다고 생각했다 → 이 방식이 되긴 하는데, 실제로 구현 과정에서.. 애를 먹었다. (굳이 추천하지는 않는다. 다만, DFS로도 될 거 같은데 ? 란 생각이..
⬛ 프로그래머스 | LV.2 리코쳇 로봇 - BFS 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제 설명은 매우 간단하지만 생각을 잘 해야되는 문제이다. 시작 R위치에서 목표점 G으로 (동,서,남,북) 가서 도착하는 최소 이동 횟수를 구하라고 되어 있다. 맨 처음 예제를 보고 든 생각 : 최소 이동하는데, 왜 답이 7씩이나 나오지 ? 일단 방향이 매번 정해질 때마다 (막힌 곳까지) 구슬마냥 쭉 간다. (이게 1번의..
⬛ 프로그래머스 (카카오 기출) | 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) 모음 순대로 문자열을 이어붙여 구성하는 방식이라는 것을 알 수 있다. 특히 ..