알고리즘
-
프로그래머스 - 실패율알고리즘 2022. 8. 4.
내 풀이 import java.util.Arrays; public class P_41 { public static int[] solution(int N, int[] stages) { int[] answer = new int[N]; double[] rate = new double[N]; // 스테이지 순차 증가 int next_stage = 0; // 총 사용자 수 int total_user = stages.length; Arrays.sort(stages); // 스테이지 정렬 // 실패율 구하기 for(int i=0; i N) { break; } for(int j=0; j
-
프로그래머스 - 3진법 뒤집기알고리즘 2022. 7. 22.
내 풀이 public class P_39 { public int solution(int n) { int answer = 0; StringBuilder sb = new StringBuilder(); while(n > 0) { if(n % 3 == 0) { sb.append(0); } else { sb.append(n % 3); } n = n / 3; } String x = sb.toString(); answer = Integer.parseInt(x, 3); // parseInt() 메소드는 첫번째 인자에 String 형태의 숫자 // 두번째 인자에 몇 진수를 10진수로 변경할건지 넣어주면 된다. // 3진수를 10진수로 바꿔야 하니까 두번째 인자에 3을 넣는다. return answer; } public ..
-
프로그래머스 - 예산알고리즘 2022. 7. 21.
내 풀이 import java.util.Arrays; public class P_38 { public int solution(int[] d, int budget) { int answer = 0; int cost = 0; Arrays.sort(d); // 1 2 3 4 5 for(int i=0; i budget) { // 원소 + 원소 > 예산 break break; } else { // 예산보다 작으면 cost에 저장 answer 회수 증가 cost += d[i]; answer++; } } return answer; } public static void main(String[] args) { // 예산 P_38 p = new P_38(); int[] d = {1,3,2,5,4}; int budget = ..
-
프로그래머스 - 비밀 지도 [2018 KAKAO BLIND RECRUITMENT]알고리즘 2022. 7. 6.
내 풀이 import java.util.Arrays; import java.util.Stack; public class P_36 { public static String[] binary(int x, int n) { // 10진수 -> 2진수 변환 메소드 Stack stack = new Stack(); String[] list = new String[n]; // 2진수 저장 배열 (방크기는 한변의 길이 n) for(int i=x; i>=1; i=i/2) { // 10진수 -> 2진수로 변환 if(i%2 == 1) { stack.push("1"); } else if(i%2 == 0) { stack.push("0"); } } if(stack.size() != n) { int check = 0; for(int ..
-
프로그래머스 - 나머지가 1이 되는 수 찾기알고리즘 2022. 7. 4.
내 풀이 public class P_35 { public int solution(int n) { // 나머지가 1이 되는 수 찾기 int answer = 0; for(int i=2; i n % i == 1).findFirst().orElse(0); } } Stream을 활용한 풀이 방법. IntStream을 활용해서 for문 while문 처럼 반복문을 돌릴 수 있다. (Java 8 이상) range()로 반복문의 범위를 정하고, filter()로 조건을 걸고, findFisrt()를 사용해서 첫번째 요소를 반환 orElse() : 값이 null로 반환 될 시 0으로 반환 시키겠다는 뜻. - 참고 - stream은 함수비용이 적은 코드에서는 성능이 좋지 않기 때문에, 단순한 반복에선 사용하는 것은 좋지 않다.
-
프로그래머스 - 2016년알고리즘 2022. 7. 1.
내 풀이 import java.time.DayOfWeek; import java.time.LocalDate; public class P_34 { public String solution(int a, int b) { // 2016년 // 윤년 2월이 29일까지 있음 // DayOfWeek의 getValue() 메소드는 월요일=1, 일요일=7 임. String [] day = {"SUN","MON","TUE","WED","THU","FRI","SAT","SUN"}; LocalDate date = LocalDate.of(2016, a, b); // = yyyy-mm-dd DayOfWeek dayOfWeek = date.getDayOfWeek(); int ans = dayOfWeek.getValue(); Str..