프로그래머스 9

연속된 부분 수열의 합 [자바]

🧫 문제 분석✔️ 출처연속된 부분 수열의 합 level 2📖 문제 비 내림차순 정렬 : 오름차순 정렬 흔한 투 포인터 문제이다. 투 포인터로 값을 합산하고 k와 비교하여 크다면 앞 포인터를 움직이고 그만큼 빼고,작다면 뒤 포인터를 움직이고 그만큼 더한다. 짧은 길이의 수열 인덱스만 갖는 배열을 준비한다. 배열의 길이가 100만까지니까 1000001 까지 해서 최댓값으로 초기에 설정한다.  투 포인터의 합계가 k와 같다면 앞 포인터 인덱스 - 뒤 포인터 인덱스 한 값이 짧은 길이의 수열 인덱스 배열과 비교하여 가장 짧은지 확인하는데 같다면 넘어가고, 더 짧다면 갱신해주면된다. 자세한건 코드를 참조    🔅 문제 풀이class Solution { // 투 포인터 문제 예상 // 연속된 부분 ..

programmers/Lv 2 2025.01.04

요격 시스템 [자바]

🧫 문제 분석✔️ 출처요격시스템 level 2📖 문제 핵심은 A 나라의 폭격 미사일을 모두 요격하면서, 요격 미사일 개수가 최소가 되게하는 것이다.최소한의 비용으로 최대한의 효율 즉, 탐욕법이라고 볼 수 있다. 또한 요격 미사일은 개구간 (s, e)에서 s, e위치에서 요격 미사일로 요격 불가능하다. 제한사항을 보면 0부터 1억까지 s와 e가 분포되어있기에 단순히 미사일이 지나간 좌표를 배열로 만들어서 카운트하는 것은 불가능하다는 것을 알 것이다.  그렇다면 참고해볼 것은 targets의 길이가 50만이라는 점이다. 뭔가 배열 정렬, 혹은 탐색 등으로 문제 풀이를 생각해보는 것이다.  필자는 고민해보다가 A나라의 폭격 미사일들을 s(시작 좌표)로 정렬그리고 하나의 폭격 미사일의 범위에 대해서 다른 미..

programmers/Lv 2 2024.12.30

프로그래머스 Lv2 모음사전 자바

🧫 문제 분석✔️ 출처모음사전 level 2📖 문제 정말 어려워했던 문제이다.결국에는 풀었다.  A : 1E : 2I : 3O : 4U : 5로 바꾸고  이에 맞춰서 완전탐색을 해서 매개변수로 넘어온 word 와 equals로 비교한 후 같다면 깊이 탐색을 멈추고 count를 반환한다. 🔅 문제 풀이class Solution { int count = 0; boolean flag = false; StringBuilder sb = new StringBuilder(); public int solution(String word) { dfs(trans(word), 0); return count; } private void dfs(Stri..

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

프로그래머스 Lv0 캐릭터의 좌표

🔍문제 분석✔️ 출처https://school.programmers.co.kr/learn/courses/30/lessons/120861📖 문제좌표이동 문제🔅 문제풀이이거 생각을 잘못해서 삽질했다처음 swich문을 사용하다가 결국 못했고if문으로 대체했다.class Solution { public int[] solution(String[] keyinput, int[] board) { int[] answer = {0,0}; board[0] /= 2; board[1] /= 2; for(int i = 0; i 끝 좌표에 달하면 더이상 해당 방향으로 못가게 continue하면 되는거였다❗ 오답노트 / 필요한 지식로직짜는 연습을 더 해야겠다..

programmers 2024.06.26

프로그래머스Lv 2 게임 맵 최단거리

🧫 문제 분석✔️ 출처게임 맵 최단거리 level 2📖 문제dfs/bfs 문제이다. bfs로 풀면 좋을것 같아서 bfs로 방향을 잡았다.방문한 좌표에 대해 check를 해주고, 갈 수 있는 곳을 check해주는 것이 핵심이다.처음에 visited를 q에서 뽑고나서 true로 해주어서 무한 루프에 빠졌었는데중복 좌표값이 Queue 에 추가되서 그런거였다.1 23 4그래프가 이렇게 있고Queue에 2,3 순으로 들어가 있다고 하자.2가 나와서 4를 추가한다.3이 나와서 4를 추가한다. 이를 해결하기 위해서 while문 밖에서 시작지점에 true를 미리 넣어주고가능한 좌표일때 방문 표시를 즉시 해줌으로써 해결하였다. 🔅 문제 풀이import java.util.*;class Solution { sta..

programmers/DFS-BFS 2024.06.26