Algorithm/programmers 39

[2021 카카오 인턴십]거리두기 확인하기

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 💡 접근 거리 1부터2까지 다른 응시자를 만나게 되면 거리두기가 안되고 있는..

[2018 카카오 블라인드 1차]뉴스 클러스터링

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 💡 접근 중복을 허용하는 다중 집합에 대해서 생각해봐야 하는 문제였다. 두 개의 리스트에서 겹치는 부분은 교집합으로 따로 만들어두고 해당 원소를 삭제하면 두 개의 리스트에 남는 집합들이 합집합의 원소들이 된다. 👩‍💻 코드 import java.io.*; import java.util.*; public class Solutio..

[2021 카카오 블라인드]메뉴 리뉴얼

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/72411?language=java 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 💡 접근 손님별 2개 이상의 모든 단품 메뉴 조합을 만들어야 했다. 그리고 그 만든 조합 기준으로 value값 기준으로 리스트를 내림차순 정렬해야했다. 그래야 코스요리 메뉴 구성에 들어갈 리스트에 잘못된 값이 들어가지 않는다! 리스트에 해쉬맵의 키들을 담아서 해쉬맵에 담긴 value 값을 기준으로 내림 차순 정렬하는 방법에 ..

[2021 데브매칭]행렬 테두리 회전하기

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 💡 접근 문제 설명대로 테두리만 회전시키고 회전한 원소 중 최솟값을 기록하면 되는 문제 원소 교체하고 board = clone 처리를 했으나 값만 바뀌는게 아닌 주솟값도 영향을 끼치는거 같아서 그냥 2중 for문 다시돌아서 다시 회전한 원소들을 배열에 넣어주었음 👩‍💻 코드 import java.util.*; class Solut..

타겟넘버

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 💡 접근 다 더하는거 ~ 다 빼는거 중에서 target인 숫자 찾는 DFS 문제 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static char[] c = {'A', 'C', 'F',..

더 맵게

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 💡 접근 우선순위큐 쓰는문제 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static char[] c = {'A', 'C', 'F', 'J', 'M', 'N', 'R', 'T'}; static i..

기능개발

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 💡 접근 큐이용해서 작업량이 100이 넘어갔을 때 그 뒤에 작업들도 완료 가능한지 확인한다. 효율성을 생각하면 큐에 있는 작업이 100이상이 되는 만큼 한번에 증가시키면 될듯.. 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy =..

[2017 카카오코드]단체사진 찍기

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 💡 접근 범위가 크지않아 순열 문제로 접근은 했으나 data에 따라서 걸러주는데에서 시간이 꽤나 걸렸다. 처음에는 순열을 뽑을 때 처음에는 인덱스 번호나 프렌즈의 이름을 넣어줬는데, 인덱스 번호나 프렌즈의 이름만으로는 각 프렌즈의 인덱스 번호를 찾기가 비효율적이라 맵을 사용했다. 맵에 프렌즈의 이름과 프렌즈의 번호를 넣어두고 data에 있는 프렌..

[2017 카카오코드]카카오프렌즈 컬러링북

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 💡 접근 BFS에서 각 영역의 갯수와 영역의 크기를 구하는 문제였다. 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; public int[] solution(int m, int n, int[][] picture) {..

[2019 카카오 블라인드]오픈채팅방

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 💡 접근 Hashmap을 이용해서 들어오거나 닉네임 변경시 map에 기록해주고 출력해주면 되는 문제 👩‍💻 코드 import java.util.ArrayList; import java.util.HashMap; class Solution { public String[] solution(String[] record) { String[] answer =..