728x90
⬛ 프로그래머스 (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으로 값을 나눠야 한다는 것 ? 그런데 문제는 반복이 되더라도 각 자릿수를 어떻게 특정할지.. 몫을 나눈다고 하더..