코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 해당 문제의 제한 크기가 크지 않은 걸 알 수 있다. 이러면 생각해볼 수 있는게 재귀가 있다. dfs를 통해 course 길이 별 order의 경우의 수를 모두 구해줬다. dfs가 종료된 후, order의 경우의 수 중에서 course 길이 별 최대로 주문된 코스요리(정답)를 구해줬다. import java.util.*; class Solution { Set set = new HashSet(); Map setMenu = new HashMap(); int max =..
코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 두 글자씩 끊어서 다중집합을 만드는 stringSlice 메서드를 만들어서 Map을 리턴해주었다. 위처럼 다중집합을 만들어준 뒤, 문제에서 제시된대로 자카드 유사도를 구해주면 마무리된다. import java.util.HashMap; import java.util.Map; class Solution { public int solution(String str1, String str2) { final int VALUE = 65536; str1 ..
코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 닉네임을 변경하면 이전에 입장했던 유저의 닉네임도 변경해주어야 한다. 그러므로 먼저 Map 을 설정해줬다. 그 뒤, record를 순회하면서 StringBuilder에 append해주었다. import java.util.*; class Solution { public String[] solution(String[] record) { String[] answer; List chat = new ArrayList(); Map map = new LinkedHashMap..
코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr Collection.reverseOrder() 메서드를 사용하여 풀이하였다. stage 순서와 실패율을 가지는 클래스(Failure)를 선언해준 뒤, 정렬해주었다. import java.util.*; class Solution { public int[] solution(int N, int[] stages) { int[] answer = new int[N]; int playerCount = stages.length; List failures = new ArrayL..
코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 이 문제에 핵심은 다음과 같다. 합집합 ( | ) 10진수(Integer)를 2진수(String)로 바꿔주는 Integer.toBinaryString 위 핵심을 사용하여 풀이하였다. class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; for(int i = 0;i
코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 왼손을 쓸지 오른손을 쓸지를 결정해주는 알고리즘을 만들어줘야 한다. (getDistance) class Solution { public String solution(int[] numbers, String hand) { hand = hand.equals("right")?"R":"L"; StringBuilder sb = new StringBuilder();..
코딩테스트 연습 - 크레인 인형뽑기 게임 [[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]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제를 살펴보면 위에서부터 쌓고 위에서부터 없어지는 걸 확인하면 Queue 자료구조를 떠올렸다. 그리고 크레인으로 뽑은 인형을 넣는 바구니는 Stack 자료구조로 만들었다. import java.util.*; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; Map map = new HashMap(); Stack stack = new Stack(); for(int i = 0;i
코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr Set과 Map을 사용하여 풀이하였다. 유저의 신고받은 횟수를 가지는 reportCountMap Map 유저가 신고한 유저들을 가지는 reportMap Map 중복 신고가 가능하며, 횟수가 한 번만 인정되므로 Set을 사용하였다. import java.util.*; class Solution { private final String SEPARATE = " "; public int[] solution(String[] id_list, String[] repo..
- Total
- Today
- Yesterday
- 알고리즘
- 테라폼
- 객체지향
- 클린 코드
- 이팩티브 자바
- BAEKJOON
- AWS
- 프로그래머스
- Spring Boot
- 디자인패턴
- MSA
- 백준
- 디자인 패턴
- Effective Java
- kotest
- Spring
- C++
- Kotlin
- kkoon9
- JPA
- Java
- BOJ
- programmers
- Algorithm
- Olympiad
- node.js
- 클린 아키텍처
- 정규표현식
- 코테
- 이펙티브 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |