전체 글
-
[프로그래머스] 프렌즈4블록 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다. 만약 판이 위와 같이 주어질 경우, 라이언이 2×2로 배치된 7개 블록과 콘이 2×2로 배치된 4개 블록이 지워진다. https://programmers.co.kr/learn/courses/30/lessons/17679 📝 문제 분석 지워지는 조건에 만족하는 2 * 2모양이 여러 개 있다면 한꺼번에 지워진다고 했으므로, 모든 칸을 순회하면서 2 * 2 모두 같은 모양을 만족하는 칸에 표시를 합니다. ( visited[][] ..
-
[프로그래머스] 캐시 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 캐시 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. https://programmers.co.kr/learn/courses/30/lessons/17680 📝 문제 분석 LRU 캐시를 구현하는 문제입니다. 캐시 사이즈만큼 최근에 사용한 도시 순서대로 캐시에 넣습니다. 도시를 찾을 때, 캐시에 있는 도시라면 가장 최근에 사용한 것..
-
[프로그래머스] 뉴스 클러스터링 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. https://programmers.co.kr/learn/courses/30/lessons/17677 📝 문제 분석 서로의 집합에 원소가 있는지 확인하는 연산을 해야하고, 중복되는 원소가 있을 수 있기때문에 자바에는 멀티셋이 없으므로 형태의 맵을 사용합니다. 다중 집..
-
[프로그래머스] 다트 게임 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 다트 게임 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. https://programmers.co.kr/learn/courses/30/lessons/17682 📝 문제 분석 입력으로 "점수|보너스|[옵션]" 형태의 문자열 3세트가 들어옵니다. 점수, 보너스, 옵션을 정규식 매칭으로 3개의 그룹으로 나누어줍니다. 스타상(*)은 해당 점수와 바로 전에 얻은 점수를 각각 2배로 만..
-
[프로그래머스] 비밀 지도 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. https://programmers.co.kr/learn/courses/30/lessons/17681 📝 문제 분석 두 장의 지도를 겹칠 때, 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽입니다. 어느 하나라도 참이라면 되기 때문에 비트마스킹 OR연산을 사용합니다. ..
-
API ControllerSpring/Spring Framework 2021. 9. 8. 13:20
1️⃣ GET Method 기본 사용법 Path Variable 사용 Query Parameter 사용 Map형태로 입력 변수 각각 매칭하기 DTO에 매칭하기 (추천 방법) 2️⃣ POST Method 기본 사용법 DTO에 매칭 Path Variable 사용법은 Get방식과 동일합니다. 3️⃣ PUT Method 기본 사용법 PathVariable과 DTO 함께 사용 4️⃣ DELETE Method 기본 사용법 5️⃣ Response 만들기 Text로 응답하기 Json으로 응답하기 ResponseEntity로 응답하기 💡 @RestController = 해당 클래스는 REST API를 처리하는 Controller라는 것을 뜻함, 메소드의 리턴값이 View가 아닌 데이터 그 자체를 리턴하게 된다. 1️⃣ ..
-
[프로그래머스] 시험장 나누기 / 2021 카카오 채용연계형 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 6. 23:00
🖇️ 문제 링크 코딩테스트 연습 - 시험장 나누기 카카오 인턴을 선발하는 코딩 테스트 시험장이 하나의 이진 트리 형태로 연결되어 있습니다. 아래 그림은 12개의 시험장이 연결된 예시입니다. 하나의 노드는 하나의 시험장을 나타냅니다. 검은 바탕의 흰 숫자는 해당 시험장의 고유 번호(ID)를 나타냅니다. 2-1. 시험장이 n개 있다면, 시험장의 고유 번호는 0부터 n-1까지 부여됩니다. 노드 안의 빨간 숫자는, 해당 시험장의 응시자 수를 나타냅니다. https://programmers.co.kr/learn/courses/30/lessons/81305 📝 문제 분석 그리디, 최적화 결정 문제, 트리 등 복합적인 풀이가 필요한 문제였습니다. k개의 그룹으로 나누었을 때, 최소화된 최대 그룹의 인원을 리턴해야 하..
-
[프로그래머스] 미로 탈출 / 2021 카카오 채용연계형 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 6. 23:00
🖇️ 문제 링크 코딩테스트 연습 - 미로 탈출 신규 게임 '카카오 미로 탈출'이 출시되어, 라이언 이 베타테스터로 참가했습니다. 위 예시 그림은 카카오 미로 탈출의 초기 상태를 나타냅니다. 1번부터 3번까지 번호가 붙어있는 3개의 방이 있고, 방과 방 사이를 연결하는 길에는 이동하는데 걸리는 시간이 표시되어 있습니다. 길은 화살표가 가리키는 방향으로만 이동할 수 있습니다. 미로에는 함정이 존재하며, 함정으로 이동하면, 이동한 함정과 연결된 모든 화살표의 방향이 바뀝니다. https://programmers.co.kr/learn/courses/30/lessons/81304 📝 문제 분석 평범한 다익스트라 문제에 트랩이라는 매커니즘을 적용시켜야 하는 문제입니다. 트랩은 최대 10개가 있을 수 있기 때문에 2..