정의된 리스트에 문제에서 요구하는 대로 중복 숫자를 제거하며 넣어준 후에 리스트를 배열로 변환시키면 끝 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22import java.util.*; public class Solution { public int[] solution(int []arr) { ArrayList arrayAns = new ArrayList(); int pres = -1; for (int i = 0; i
알고리즘 풀이
단어의 길이 짝수 홀수 나눠서 처리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15class Solution { public String solution(String s) { String answer = ""; int length = s.length(); int index = length / 2; if(length%2==0){ answer=s.substring(index-1,index+1); } else{ answer=s.substring(index,index+1); } return answer; } }
숫자조립만 잘해주면됨 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24class Solution { public String solution(int a, int b) { String answer = ""; int[] days = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; String[] dates = {"FRI", "SAT","SUN", "MON", "TUE", "WED", "THU"}; int tot = 0; for (int i = 0; i
배열들을 받아주고 문제에서 요구하는 answer를 찾기 위해 array배열에서 주어진 조건의 숫자들을 뽑아네는 taken배열을 찾아낸다 그 후에 sorting 후 요구하는 k번째 숫자들을 찾아 answer배열에 저장해줌 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 import java.util.*; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for (int i = 0; i
학생클래스를 선언하여 학생의 번호와 받은 점수를 정의함 pattern을 2차원 배열에 저장하여 for문을 통해 학생들의 점수를 체크하고 Student객체를 정의함 Comparator 클래스를 통해 학생들의 점수에 내림차순으로 정렬함 동시최대정답자가 2~3명인 경우도 있으므로 그러한 경우 처리 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 import java.util.*; class Solution { static class S..
완전탐색으로 하는 것이 아닌 먹는 시간이 짧은 순으로 음식을 1개씩 빼는 방식으로 문제를 해결함 음식을 빼다가 문제에서 주어진 k순을 넘어가는 경우를 체크해주어 넘어가기 전의 인덱스를 활용하여 k번째가 어떤 음식인지 찾아야함 Food 클래스를 선언하여 음식을 먹는데 걸리는 시간과 음식 번호를 표시해줌 Food 리스트를 선언해 주어진 food_times에 맞춰서 매칭해줌 Compator를 2개 써야하는데 1개는 시간에 대한 오름차순, 1개는 인덱스에 대한 오름차순을 위해 선언함 시간에 대한 오름차순으로 sorting 해주고 앞서 말한 음식 1개씩 빼는 방식으로 for문돌리다가 문제에서 요구하는 k번째 넘게 도달했을 때 따로 이벤트 처리해준 후 앞서 선언한 foods 배열에서 해당하는 index값을 retu..
Fail클래스를 따로 선언하여 stage와 실패율 2개 변수를 저장함 stage에 따른 users를 for문으로 따로 저장해주고 실패율을 계산해줌 comparator클래스를 활용해 실패율이 높은 순으로 정렬하고, 실패율이 같은 경우에는 stage가 낮은 순으로 정렬한다 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 import jav..
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 import java.util.*; class Solution { private static final String ENTER_FORMAT = "%s님이 들어왔습니다."; private static final String LEAVE_FORMAT = "%s님이 나갔습니다."; public String[] solution(String[] records) { String[] answer = {}; // Map userNick..
선수와 선수의 수를 저장할 해쉬맵 선언 participant 배열을 통해 참가자들의 수만큼 수를 더해줌 (중복 생각해줌) completion 배열을 통해 완주자들의 수만큼 수를 빼줌 마무리 후 해쉬맵의 성분 중에 value값이 1인 key값을 출력해주면 된다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import java.util.HashMap; import java.util.Map; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Map map = new HashMap(); for (String str..
입력받은 값 a에서부터 1씩 뺀 후에 그 값의 분해합이 처음에 주어진 값 a와 일치할 경우 res값을 갱신해준다 a-1부터 1이 될 때까지 while문을 돌리며 while문이 끝난 후의 res값이 문제에서 요구하는 가장 작은 생성자이다 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 29import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int index = a; int res=0; while(index>0) { ..