728x90
⬛ 프로그래머스 (PCCE 기출) | 10번. 데이터 분석 - 구현 문풀 (Java)💚문제 접근 방식문제에서는 data[][] 2차원 배열로 들어오는 정보를 뽑아낼 ext 값을 기준으로 int val_ext 보다 작은 값만 추출한 뒤, 그들을 다시 sort_by 값을 기준으로 오름차순 정렬한 데이터를 2차원 배열 형태로 반환하라고 하고 있다.우선 Data 클래스를 하나 선언했다. 이 안에서 내부적으로 2차원 배열과 동일한 셋을 가지되, sortby 값을 모두 갖게끔 만들어서 정렬 시 그 값을 기준으로 오름차순 정렬하도록 compareTo 메소드를 재정의 해뒀다.PriorityQueue 우선순위 큐에 Data 객체 값을 가질 건데, 어차피 이 자료구조에 담게 되면 자동정렬 될 거니까. ext값이 ext_..
⬛ 프로그래머스 (카카오) | LV. 1차 비밀지도 - 구현 문풀 (Java)💚문제 접근 방식우선 처음에는 10진수로 들어온 값을 2진수로 변형변형된 값을 n의 자릿수로 맞춰줘야 함두 arr 비교하여 둘다 0이면 공백, 하나라도 1이면 #을 붙이는 식으로 answer 세팅문제는 중간에 2) 를 처리할 때, String.format(”%0xd”, int) 이 함수를 활용하는 과정에서 문제가 생겼다. 착각한 것인데 이 문제는 n이 매개변수로 들어오기 때문에, 각 케이스별로 다른 자릿수를 요구하고 있는데 내 마음대로 저 함수를 활용해버린 것이다.그래서 직관적으로 len 길이를 매번 n에서 뺀 후 앞에 0을 붙여줄 값을 구해서 for문으로 이어붙이는 방식을 택했다.💚 제출 코드import java.util...
⬛ 프로그래머스 (PCCP) | LV.1 이웃한 칸 - BFS 문풀 (Java)https://school.programmers.co.kr/learn/courses/30/lessons/250125 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식처음에는 BFS함수를 만들어서 풀고자 했는데 문제를 제대로 읽어보면 현재 정점은 h,w로 고정이고 움직임 없이 현재 정점 기준으로 상하좌우에 인접한 동일 색깔 개수만 구하면 되는 문제였다. 그러니 BFS로 현재 정점을 계속 갱신하면서 풀 이유가 없는 문제였다.BFS 로직처럼 생각하되 현재 정점을 따로 갱신..
⬛ 프로그래머스 (PCCP) | LV.2 석유 시추 - BFS/DFS + 구현 문풀 (Java)https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식정확성과 효율성을 모두 통과해야 되는 문제이다.일단 시추로 각 열에 대해 쭉 들어갔을 때 터치하는 석유 크기는 모두 합해야하는데, 중복되진 않게 세는 게 중요하다. 1) BFS로 land가 들어왔을 때 1로 찍힌 부분을 모두 진입하면서 연결된 덩어리 크기를 구하여 반환시킨다.→ 처음에는 이..
⬛ 프로그래머스 | LV.1 모의고사 - 완전탐색 DFS 문풀 (Java)https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식정답 문자열 길이만큼 1~3번 학생의 반복 문자열을 재구성하는 함수가 따로 구현되어 있어야 하고, 그 lv 만큼 DFS 탐색하면서 각 lv 에 대응하는 숫자가 일치할 때마다 count++처리해주면 된다. 1) getProblem() 함수로 반복 문자열을 len 길이와 비교하여 크다면 자르..
⬛ 프로그래머스 (카카오) | LV.1 숫자 문자열과 영단어 - 구현 문풀 (Java)https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식주어진 문자열에 존재하는 ‘영단어’ 문자열을 replace로 숫자값을 대체한 뒤, 마지막에 int형으로 변환시켜서 반환하면 되는 문제이다. 1) List상에 String 타입으로 zero~nine 까지 차례로 담는다.2) for문 돌면서 해당 String 숫자문자열에 대한 치환을 시도하는데 치환 대상..
⬛ 프로그래머스 | LV.2 2개 이하로 다른 비트 - 구현 문풀 (Java)https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💚문제 접근 방식처음에 든 풀이법은 while 문으로 주어진 배열 값 각각을 1씩 증가시켜 비트와 주어진 수를 비교하다가 다른 비트가 2개 이하면 break; 걸어주어서 개수를 리턴하는 단순한 방식이었다. 그런데 이 방식은 시간초과가 난다. 제한사항에서 numbers의 모든 수가 10^15이하이기 때문에 더 효율적인 풀이 ..
⬛ 프로그래머스 | LV.3 업그레이드 할 수 없는 아이템 구하기 (MySQL)https://school.programmers.co.kr/learn/courses/30/lessons/273712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식ITEM_INFO와 ITEM_TREE 두 개의 테이블이 있는데, ITEM_TREE 상의 PARENT_ID에서 NULL이 아니면서, 해당하는 부모가 되는 애들을 제외 (NOT IN)한 ITEM_ID를 구하면 ‘업그레이드 할 수 없는’ 아이템을 뽑아내게 된다. 1) 서브쿼리로 PARENT_ITEM_ID가 NU..
⬛ 프로그래머스 (카카오) | LV.2 메뉴 리뉴얼 - DFS (Java)https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식내 생각으로는 각 orders의 문자열에 대해서 course 개수만큼 nCr 조합을 구성해서 그 구성의 개수를 Map으로 카운팅하면서 구현하면 될 거라고 생각했다.char[] 배열로 매번 lv 깊이의 인덱스에 선택한 문자를 담도록 구성했는데, 중복없이 구현하기 위해 start 인덱스도 매번 DFS에 주도록하여 중..
⬛ 프로그래머스 (Summer/Winter) | LV.2 스킬트리 - 구현 문풀 (Java)https://school.programmers.co.kr/learn/courses/30/lessons/49993#fnref1 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식선행 스킬 순서를 지킨 스킬트리 내의 문자열 개수를 구하는 문제이다.일단 skill_trees 내부에 선행 스킬에 있는 문자만 이어붙이도록 했다. (나중에 찾아보니 이 부분을 replace로 대체해서 하는 방법도 있었다. 나의 경우는 skill 길이가 26까지니까 그냥 이어붙임) ..
⬛ 프로그래머스 | LV.2 택배상자 - Stack & 구현 문풀 (Java)https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💚문제 접근 방식문제를 읽어보면 보조 컨테이너 설명이 스택과 유사하다. 스택을 활용하여 처리를 해야 된다.컨테이너는 순차적으로 들어올 건데, 정해진 순서의 값과 같은지 다른지에 따라 다르게 처리해야 한다. 맨 처음에 제출했을 때 4) 에서 처리해주는 while 문에 대한 처리 없이 매번 현재 box번호와 order 상의 번..
⬛ 프로그래머스 | LV.2 구명보트 - 그리디 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 예전에 풀었던 문제를 다시 풀게 됐다. 프로그래머스 | LV.2 구명보트 - 그리디 문풀 (Java) 프로그래머스 | LV.2 구명보트 (그리디) https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포..
⬛ 프로그래머스 | LV.2 조이스틱 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42860# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 어려웠다. 이 문제는 커서를 제대로 움직이는 게 핵심이다. 최소 조작 횟수를 만드는 핵심은 (1) ['A' ~ 글자] vs [글자 ~ 'Z] 사이의 거리를 비교하여 각 글자에 대한 최소 조작을 하는 것이고, (2) 최소 조작을 위해 처리할 글자에 대한 커서 조작을 최소로 하는 것이 중요하다. 처음에는 ‘커서’ 조작..
⬛ 프로그래머스 | LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (MySQL) https://school.programmers.co.kr/learn/courses/30/lessons/151139 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 월별, CAR_ID 별 GOUP BY를 써야 했는데, 중첩 쿼리문을 작성하여 COUNT가 5이상인 애들의 CAR_ID를 먼저 뽑고 그 ID에 해당하는 ID에 대해서 그룹별 SELECT를 해야 하는 문제였다. 개인적으로 조금 까다롭게 느껴졌고 참고해서 풀었다. 💚 제출 코드 -- 코드를..
⬛ 프로그래머스 | LV.2 124 나라의 숫자 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 이런 문제가 어렵다 … 당연히 규칙성 있을 거라 생각했고 데이터 크기가 매우 크기때문에 효율성도 생각해줘야 되는 문제이다. 일단 처음 든 생각은 ( 1, 2, 4 ) 3가지가 반복되기 때문에 3으로 값을 나눠야 한다는 것 ? 그런데 문제는 반복이 되더라도 각 자릿수를 어떻게 특정할지.. 몫을 나눈다고 하더..
⬛ 프로그래머스 | LV.2 더 맵게 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 가장 처음에는 scoville[] 배열 안에서 K보다 작은 값들만 뽑아서 처리하면 된다고 생각했고, 매번 가장 작은 값과 가장 큰 값을 섞는 게 최선이라 생각했다. 하지만 둘 다 아니었다. 아마도 생각하건데, 작은값들끼리만 계산하는 것은 그 값이 1개일 때 무조건 불가능하다고 처리될텐데 모든 음식을 섞을 수 있기 때..
⬛ 프로그래머스 | LV.3 물고기 종류 별 대어 찾기 (MySQL) https://school.programmers.co.kr/learn/courses/30/lessons/293261 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 주의할 점은 FISH_INFO와 FISH_NAME_INFO를 TYPE 기준으로 조인을 하는데 그 중에서도 WHERE 절로 GROUP별 MAX (LENGTH)를 갖는 TYPE으로 제한을 두고 들고오는 것이다. GROUP HAVING 절로 MAX를 갖는 애를 추려내는 부분이 좀 까다로웠다. 💚 제출 코드 -- 코..
⬛ 프로그래머스 | LV.2 줄 서는 방법 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 진짜 이해하기도 어려웠다. 처음에 제한 사항에서 k 가 팩토리얼만큼 들어온다는 것을 못보고 단순히 DFS 탐색을 시도했는데 시간 초과가 뜨는… ㅠㅠ 효율적인 풀이를 찾아도 이해가 안돼서 오랫동안 보고 이해한 토대로 정리 했다. https://void2017.tistory.com/136 [프로그래머스] 줄 서는 ..
⬛ 프로그래머스 | LV.2 다리를 지나는 트럭 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제 설명이 애매해서 어떻게 푸는 것인지 이해가 안됐다. bridge_length 길이를 주는 이유는 매초마다 그 다리 길이만큼 (& weight 초과않는 선에서) 통과해야 다리를 지나갈 수 있기 때문이었다. 그래도 문제만 읽고 유추하기 어려웠다 1) 일단 int[] bridge를 매개변수로 주어진 다리 ..