Algorithm/Programmers(26)
-
[programmers] K번째 수 (java) -1level
문제 설명 문제 해결 import java.util.ArrayList; import java.util.Collections; public class k번째수 { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; ArrayList list = new ArrayList(); for (int i = 0; i < commands.length; i++) { for (int a = commands[i][0]-1; a < commands[i][1]; a++) { list.add(array[a]); } Collections.sort(list); // 정렬 answer[i] = list.get(com..
2022.03.03 -
[programmers] 3진법 뒤집기 (java) -1level
문제 설명 문제 해결 굳이 다시 뒤집을 필요 없게 answer에 n % 3을 차근차근 쌓아준다. 반복문을 벗어나서 남은 n까지 문자열을 붙여주고 Integer.parseInt(String타입 , 3진법)을 이용한다. 위 식을 사용한다면 3진법 -> 10진법으로 나타낼 수 있다, public class 삼진법뒤집기 { public int solution(int n) { String answer = ""; while(n >= 3){ answer += n % 3; n /= 3; } answer += n; return Integer.parseInt(answer,3); } }
2022.03.02 -
[programmers] 두 개 뽑아서 더하기 (java) -1level
문제 설명 문제 해결 Set Collection 중에서 중복 없는 HashSet을 이용한다. 서로 다른 인덱스의 값을 더해주고 배열로 가져와 오름차순으로 정렬해주었더니 문제가 풀렸다. import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class 두개뽑아서더하기 { public int[] solution(int[] numbers) { Set set = new HashSet(); for (int i = 0; i < numbers.length; i++) { for (int j = i + 1; j < numbers.length; j++) { set.add(numbers[..
2022.03.01 -
[programmers] 소수 만들기 (java) -1level
문제 설명 문제 해결 다른 방법이 없을까 하다가 결국 3중 for문을 이용해 인덱스의 값들로만 합을 구했다. 구한 값을 list.add를 통해 넣고 배열로 옮겨준다음 그 배열의 값들이 소수인지 판단하여 문제를 풀어주었다. import java.util.ArrayList; class Solution { public int solution(int[] nums) { int answer = 0; int cnt = 0, sum = 0; ArrayList list = new ArrayList(); // 세개 수의 합을 담을 리스트 for (int a = 0; a < nums.length; a++) { for (int b = a + 1; b < nums.length; b++) { for (int c = b + 1; ..
2022.02.28 -
[programmers] 모의고사 (java) -1level
문제 설명 문제 해결 모든 값들을 다 거쳐서 확인해주면 되는 완탐 문제이다. 1번에서 3번 사람까지 정해져 있으니 people이라는 배열을 3의 크기로 생성하고 people 배열에 맞춘 문제 개수를 넣어주면 된다. 핵심은 각 반복되는 수를 arr 2차원 배열에 넣어주고 반복적으로 발생되는 값을 구현하는 것이다. (% 를 이용하여 반복되는 값을 넣어주자.) import java.util.ArrayList; public class 모의고사 { public int[] solution(int[] answers) { // 1번 12345 2번 21 23 24 25 반복 3번 33 11 22 44 55 반복 int[][] arr = { {1,2,3,4,5}, {2,1,2,3,2,4,2,5}, {3,3,1,1,2,2..
2022.02.27 -
[programmers] 2016년 (java) -1level
문제 설명 문제 해결 금요일부터 목요일까지 7일의 날짜를 나타내는 String 타입의 배열을 생성해주었다. 1월부터 12월까지의 일수를 int 타입의 배열에 넣어주고 윤년이니까 2월은 29일을 넣어주었다. a의 앞 달까지 일수를 b 에다가 더해주고 7로 나눴을 때 남은 수를 String 배열의 인덱스로 놓아 답을 구해준다. public class 이천십육년 { public String solution(int a, int b) { String[] str = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; int[] arr = {31,29,31,30,31,30,31,31,30,31,30,31}; for (int i = 1; i < a; i++){ b += arr[i..
2022.02.26