본문 바로가기

Java/알고리즘63

프로세스 오늘도 큐를 쓰는게 훨씬 편할거같아서 한번 써봤다. ㅇ 1트 public static int solution(int[] priorities, int location) { int answer = 0; //빈 큐를 하나 만들고 거기에 priorities 넣음 Queue q = new LinkedList(); for(int i = 0; i < priorities.length; i++){ q.add(priorities[i]); } Queue resultQue = new LinkedList(); //만약 큐의 첫번째값이 뒤에있는값보다 작을때 뽑아서 다시 뒤로 넣음 //만약 첫번째값(current)이 뒤에있는거보다 크거나 같을때 resultQue 로 넣음 while(!q.isEmpty()){ int current .. 2023. 10. 18.
기능개발 원래는 스택/큐 문제지만, 굳이 안써도 될것같아서 안쓰고 한번 풀어봤다.(그래서 엄청 오래걸렸다.) ㅇ 1트 public static int[] solution(int[] progresses, int[] speeds) { //몇번 더해야하는지를 넣는 배열생성한다. int[] addTo100 = new int[progresses.length]; //100까지 몇번더하는지 구해서 addTo100 배열에 넣는다. for (int i = 0; i < progresses.length; i++) { int target = 100 - progresses[i]; addTo100[i] = (int) Math.ceil((double) target / speeds[i]); } //answer에 넣기 전, 그룹을 지어서 갯수.. 2023. 10. 17.
괄호 회전하기 ㅇ 문제 먼저 문제를 꼼꼼히 읽으며(그렇지 못했다. 그래서 한시간날림) 수도코드를 작성해보면, // 1.문자열을 왼쪽으로 한칸씩 이동하는로직 // 첫번째문자 따로 빼놓기 // 두번째문자부터 한칸씩 왼쪽으로 이동 // 아까첫번째 문자는 맨마지막으로ㄱㄱ // 2. 이과정에서 나온 char[]을 유효한지 검증 // 빈스택만들기 // 스택에 여는괄호면 푸쉬, 닫는괄호면 팝 // 두개 짝 맞는지 비교한다. // 3. 이과정을 반복한다. ㅇ 1트 public static int solution(String s) { int answer = 0; //문자열s 가 널이거나 비어있을경우 그냥 0 if (s == null || s.isEmpty()) { return 0; } char[] chars = s.toCharArra.. 2023. 10. 16.
H-Index 문제를 얼핏봤을때 아ㅋㅋ쉽네 생각했는데 코드로 짜보려고하니깐 정말 힘들었다. 분명 잘만 생각해보면 코드는 쉬울거같은데 그 잘만 생각해보는게 너무나도 힘들었다. 결과적으로 h이상인게 h개일때, h의 최댓값을 구하면 되는데 한시간반동안 고전하다가 풀게되었다. class Solution { public int solution(int[] citations) { Arrays.sort(citations); int n = citations.length; for (int i = 0; i = h) { return h; } } // h-index를 찾을 수 없는 경우, 0.. 2023. 10. 13.