programmers/Kakao 10

K진수에서 소수개수 구하기

🧫 문제 분석✔️ 출처K진수에서 소수 개수 구하기 level 2📖 문제 간단한 문제인데 소수 판별 문제를 오랜만에 만나서 리마인드 겸 포스팅한다. 조건이 뭔가 4가지 경우를 다 체크해야할 것 같지만 그렇지 않다111011101110을 기준으로 진수를 나누면1가지의 조건식만 적용된다첫번째와 마지막은 각각 P0, 0P가운데는 무조건 0P0이 적용된다.이들을 하나하나 다 소수검증해준다. 문제에서 k진법으로가 아닌 10진법으로봤을때 소수여야한다고 되어있는데 이는211 일 경우 10진수 그대로 211이 소수이냐는 것이다.. 4번 조건 P의 경우 0을 기준으로 진수를 나눴을떄각 자릿수에 0이 하나도 없어야하므로 그대로 나온다.따라서 똑같이 적용하면된다. 🔅 문제 풀이import java.util.*;cla..

programmers/Kakao 2025.09.30

양국대회 [자바]

🧫 문제 분석✔️ 출처양국대회 level 2📖 문제 최대 점수이면서 가장 낮은 점수를 가장 많이 맞춘 스코어 배열을 만들어야하는 문제 최대 점수를 만들되 어피치가 가진 점수를 빼앗기 위해서는어피치가 맞춘 화살 개수보다 더 많이 맞춰야 해당 점수를 획득할 수 있다. 라이언이 각 점수를 화살로 맞추는 경우와 맞추지 않는 경우 2가지를 dfs로 탐색하여 풀었다.(최대 점수가 10점이기에 시간복잡도는 길어야 O(2^11)이다) 그리고 최대 점수를 갱신하고, 해당 점수를 얻은 화살 맞춘 스코어 배열을 list에 저장하면서 진행한다. 같은 점수라도 다 저장한다. 탐색이 끝나면 정답 후보를 탐색한다. 같은 점수인 정답 후보 중 가장 낮은 점수를 더 많이 획득한 경우를 구한다. 구한 정답 후보에서 안쏜 화살 개..

programmers/Kakao 2025.09.28

외벽 점검 [자바]

🧫 문제 분석✔️ 출처외벽 점검 level 3📖 문제 DFS로 풀려다가 for문으로 그리디하게 풀 수 있을것 같아 바꿔풀었다. 각 취약지점을 기준으로 시계방향으로 출발했을 때 걸리는 시간의 누적합을 구한다. 예시로 들자면1561004598015711043780 그 다음 for문으로 각 weak을 순회하면서 각 지점을 순차적으로 출발지점으로 정한다. 최소한의 인원으로 처리해야하므로 가장 많이 처리할 수 있는 친구부터 출발지점에서 처리할 수 있는 취약지점을 탐색한다.가장 많이 처리할 수 있는 친구는 문제에서 입력으로 dist에 오름차순으로 주어진다. 여기서 예시로는 마지막 친구가 4의 거리를 처리하고 현재 출발지점이 1 이므로, 5까지 처리가 가능하다. 구했다면 이제 해당 취약지점을 더 적은 이동거리를..

programmers/Kakao 2025.09.25

n + 1 카드게임 [자바]

🧫 문제 분석✔️ 출처n+1 카드게임 level 3📖 문제 n/3 개의 카드를 뽑는다. (코인 소비 X) 종료 조건남은 카드 X, 카드 2장을 낼 수 없는 경우 일단 2장을 뽑고 뽑은 카드중 n+1을 만족하는 게 있다면 해당 카드가 처음에 뽑은 n/3개의 기본 카드 인지 확인한다. 기본 카드가 아니라면 현재 가지는 코인 - 뽑은 카드 개수 >= 0 인지 확인후 가능하다면 카드를 2내고 다음 라운드로 진행하면 된다. 🔅 문제 풀이import java.util.*;class Solution { public int solution(int coin, int[] cards) { int n = cards.length; int target = n + 1; int ..

programmers/Kakao 2025.09.17

표현 가능한 이진트리 [자바]

🧫 문제 분석✔️ 출처 표현 가능한 이진트리 level 3 📖 문제 포화 이진트리를 만들고 중앙이 항상 해당 서브트리의 루트인 것을 이용한다.루트가 0일때 자식 노드가 1이면 불가능판정을 내리면 된다. 이진트리의 높이 공식은 2^h - 1 = Nh = Math.ceil(Log2(N + 1)); 이진트리 오랜만에 풀다보니 잘생각이 안나서 좀 고생했다. 🔅 문제 풀이import java.util.Arrays;class Solution { public int[] solution(long[] numbers) { int[] answer = new int[numbers.length]; for (int i = 0; i = e) return true; ..

programmers/Kakao 2025.09.12

주사위 고르기 [자바]

🧫 문제 분석✔️ 출처주사위 고르기 level 3📖 문제 많은 공부가 된 문제다.. 문제 풀이 방법까지는 잘 도출했는데 정작 최대 5개를 뽑았을때주사위의 눈의 합을 구하는 법에서 막혔다. 문제는 너무 많은 생각이라고 생각한다. 나오는 모든 합에 대하여 카운트를 해주려다가 이건 또 너무 복잡하고머리가 잘 안돌아갔다. 이번에 알게된 것 N개의 조합의 모든 합 구하기dfs로 짜는 것 까진 했는데 정작 어떻게 더해야할지 감이 안잡혔다. 근데 그냥 하나하나씩 주사위를 건드리면 됐다.1번 주사위의 i번째 + 2번 주사위의 i번째.. 이런식으로 잘 기억해두자.. 이분 탐색최대 개수를 구할때는 size() 까지 해줘해한다는 것 처음에 탐색 범위를 0 ~size()-1 까지로 했는데12번 테스트 케이스가 계속..

programmers/Kakao 2025.09.05

2019 KAKAO BLIND RECRUITMENT 실패율

🔍문제 분석✔️ 출처https://school.programmers.co.kr/learn/courses/30/lessons/42889📖 문제맵을 사용하여 풀이하였다. 또한 키값에 대한 value의 정렬이 필요했다.🔅 문제 풀이import java.util.*;class Solution { public int[] solution(int N, int[] stages) { int[] stage = new int[N+2]; //1:1 대응 int tmp = stages.length; //총 인원수 //인덱스 자체가 스테이지, 값은 인원수 for(int i = 0; i map = new HashMap(); ..

programmers/Kakao 2024.06.27

2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임

🔍문제 분석✔️ 출처https://school.programmers.co.kr/learn/courses/30/lessons/64061📖 문제board 이해가 어려웠다.첫 배열이 맨위이고 마지막 인덱스의 배열이 맨 밑이다 . [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] 이런식이다. Stack을 사용하여 peek함수로 제일 위의 값을 꺼내 크레인으로 뽑은 값과 같으면 pop()으로 제거하고 answer에 2를 더하고 원래 인형 위치의 값는 0으로 초기화 해준다. 🔅 문제 풀이import java.util.Stack;class Solution { public int solution(int[][] board, int[] moves) {..

programmers/Kakao 2024.06.27

2021 카카오 채용연계형 인턴십 - 숫자 문자열과 영단어

🔍문제 분석✔️ 출처https://school.programmers.co.kr/learn/courses/30/lessons/81301📖 문제문자열 변환 문제🔅 문제풀이처음 풀이는 숫자만 있을 때랑 문자열이랑 같이 있을 때를 고려해서 replaceAll로 숫자만있는건 empty상태로 만들었다class Solution { public int solution(String s) { int answer = 0; String[] num = {"zero","one","two","three","four","five","six","seven","eight","nine"}; String tmp = s.replaceAll("[0-9]", ""); ..

programmers/Kakao 2024.06.26

2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도

🔍문제 분석✔️ 출처https://school.programmers.co.kr/learn/courses/30/lessons/17681📖 문제비트연산 문제🔅 문제풀이처음엔 Integer.toString(arr[i],2); 한다음 문자열 charAt()해서 각각 자리수에 따라 1이면 # 0이면 공백을 할라했는데핵심은 비트연산이였다.class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] code = new String[arr1.length]; for(int i = 0 ; i String.format을 사용할 생각을 못했다. 최대한 어떻게든 풀었다.❗ 오답노트 / 필요한 지식입출력 ..

programmers/Kakao 2024.06.26