하샤드수(Lv.1)[프로그래머스]
2022. 9. 27. 14:11
알고리즘
import java.util.*; class Solution { public boolean solution(int x) { boolean answer = true; //split을 하기위해 String type으로 변환 List split = List.of(String.valueOf(x).split("")); int sum = 0; for (String s : split) { //x의 x자리 수의 합을 위해 int타입으로 변환 후 sum+= sum += Integer.parseInt(s); } //x를 sum으로 나누었을 때 나머지가 0이 아니면 하샤드 수 x if (x%sum!=0){ answer = false; } return answer; } }
최댓값과 최솟값(Lv.2)[프로그래머스]
2022. 9. 26. 15:15
알고리즘
import java.util.*; class Solution { public int solution(int[] citations) { List sort = new ArrayList(); for (int i : citations){ sort.add(i); } int hDex = 0; sort.sort(Collections.reverseOrder()); for (int i = 0; i=i+1){ hDex = i +1; } if (sort.get(i)
최댓값과 최솟값(Lv.2)[프로그래머스]
2022. 9. 24. 18:18
알고리즘
import java.util.*; class Solution { public String solution(String s) { String answer = ""; List split = new ArrayList(List.of(s.split(" "))); List integers = new ArrayList(); for (String s1: split){ int number = Integer.parseInt(s1); integers.add(number); } Collections.sort(integers); answer+= integers.get(0); answer+= " "; answer+= integers.get(integers.size()-1); return answer; } }
[1차]캐시 2018 KAKAO BLIND RECRUITMENT(Lv.2)[프로그래머스]
2022. 9. 22. 15:57
알고리즘
가장 오랫동안 참조하지 않은 페이지를 캐시에서 교체하는 것. LRU 알고리즘을 구현할때 Queue를 사용하면 편하다고 한다. Java에서는 LinkedList가 Queue의 구현체 이다. 가장 적게 참조한 페이지를 캐시에서 교체하는 것이다. import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { int time = 0; int hit = 1; int miss = 5; LinkedList q = new LinkedList(); //캐시 크기가 0일경우 모두 miss, cities의 길이 * 5 if (cacheSize == 0) { time = cities.length * 5; return time;..
야근지수(Lv.3)[프로그래머스]
2022. 9. 21. 12:01
알고리즘
import java.util.*; class Solution { public long solution(int n, int[] works) { int totalWorks = 0; long totalFatigue = 0; PriorityQueue pq = new PriorityQueue(Collections.reverseOrder()); //1.남은일의 총 합 = totalWorks //2.우선순위큐에 남은 일을 넣어줌 for (int work : works) { totalWorks += work; pq.add(work); } //totalWorks가 n(Demi가 처리할 수 있는 일의 양) 보다 작거나 같을 경우 야근 x if(totalWorks=1){ if (pq.peek()>0){ int mh =pq..
이중우선순위큐(Lv.3)[프로그래머스]
2022. 9. 20. 15:10
알고리즘
import java.util.*; class Solution { public int[] solution(String[] operations) { int[] answer = {}; answer = new int[]{0,0}; ArrayList arrayList = new ArrayList(List.of(operations)); ArrayList number = new ArrayList(); for (int i =0; i
최솟값 만들기(Lv.2)[프로그래머스]
2022. 9. 19. 10:15
알고리즘
import java.util.*; class Solution { public int solution(int []A, int []B){ int answer = 0; //누적 최소 값이므로 가장 큰수와 가장 작은 수를 곱해주기 위해 하나는 오름차순 하나는 내림차순으로 정렬 /*오름차순*/ Arrays.sort(A); /*내림차순 정렬*/ // Collectons는 기본적으로 Object를 상속한 클래스에 대해서 사용 가능하므로 //String,Integer,Double 등과 같은 Object 타입에 배열은 sort에 Collections.reverseOrder()사용이 가능하고 //기본타입인 int, double, char, float 등은 사용이 불가능함. //따라서 int[]B 배열을 Integer[]..
이진 변환 반복하기(Lv.2)[프로그래머스]
2022. 9. 19. 08:35
알고리즘
import java.util.*; class Solution { public int[] solution(String s) { int[] answer = new int[2]; //이진수가 1이 될때까지 반복 while(!s.equals("1")){ List split = List.of(s.split("")); //0을 제거한 길이 == s에 있는 1의 개수 int noZeroLength = 0; for(String number : split){ //0일 경우 == 0을 제거한 횟수 +1 if(number.equals("0")){ answer[1] ++; } else if(number.equals("1")){ noZeroLength +=1; } } //0을 제거한 길이를 이진수로 변환 s = Integer..