본문 바로가기
반응형

java37

각종 알고리즘 모듬탕 Part 2 역시나 분류 따윈... package com.kei; import java.util.PriorityQueue; public class DFS_wordConvert { static PriorityQueue _pq; static String[] _words; static String _target; static boolean _first; static void dfs(String nWord, int idx, int count, boolean[] visited, String log) { // hit 로 첨에 들어 오는건 처리하지 않는다. if(_first == false) { count++; visited[idx] = true; } _first = false; if(nWord.equals(_target)){ .. 2021. 3. 1.
각종 알고리즘 모듬탕 Part 1 분류 따윈 아직 없다. package com.kei; import java.util.Arrays; import java.util.PriorityQueue; public class Kruscal { static class Node implements Comparable{ int st; int ed; int di; public Node(int s, int e, int d) { this.st = s; this.ed = e; this.di = d; } // 짧은 거리순으로 큐에 넣는다. public int compareTo(Node n) { return this.di - n.di; } } static int[] parent; // 최상위 부모를 찾아서 바꿔치기 한다. // [1] = 2 -> [2] = 3 ->.. 2021. 3. 1.
해커랭크 풀어 보았다. 그러하다... ㅇSherlock and Array int size = arr.size(); int leftSum = 0; int rightSum = 0; int leftIndex = 0; int rightIndex = size - 1; String answer = ""; for(int i = 0 ; i < size ; i++) { leftSum = leftSum + arr.get(leftIndex); rightSum = rightSum + arr.get(rightIndex); //System.out.println(leftSum + " " + rightSum); if(leftIndex == rightIndex) { if (leftSum == rightSum) { answer = "YES"; } else {.. 2021. 3. 1.
JAVA 문법들 ㅇ주요문법들 1. 정렬 // int[] -> Integer[] -> int[] Integer[] arr3 = Arrays.stream(test).boxed().toArray(Integer[]::new); int[] z = Arrays.stream(i).mapToInt(Integer::intValue).toArray(); Arrays.sort(jobs, (o1, o2) -> o1[0] - o2[0]); // Int 배열 오름차순 Arrays.sort(jobs, (o1, o2) -> o1[1].compareTo(o2[1])); // String 배열 오름차순 Collections.sort(arr, new Comparator() { public int compare(String o1, String o2) { .. 2021. 3. 1.
[자료구조][JAVA] Sort 모음 요즘 멍청이가 된 듯 하여 뜨문뜨문 시작하는 자료구조 시리즈... 버블, 머지, 퀵 소트를 한번에 쭉 찍어 보고 비교를 해 보자. [ Sort.java ] package com.kei; public class Sort { static int loopCount; public static void main(String[] args) { Sort sort = new Sort(); int sourceArray[] = {5, 7, 2, 3, 8, 4, 1, 6}; int workArray[]; sort.printArray(sourceArray, true); loopCount = 0; workArray = sourceArray.clone(); sort.bubbleSort(workArray); System.out.p.. 2020. 10. 4.
[자료구조][JAVA] Binary Tree 최근... 어쩌다 보니 알고리즘을 공부하게 되었다. 이진트리를 코딩 하려고 이클립스를 깔아서 손을 댈려고 하는데..... 이게 쉽사리 손이 안 간다. 슬펐다. 딱히 어렵지 않은 알고리즘 이라고 생각했는데 머리가 안 굴러 간다. 사실 내가 여지껏 한 업무는 프레임워크 기반에서 사용자의 요구사항을 받아서 구현하는 것이다 보니 프로세스 잘 세워서 SQL 만들고 if, for 문만 알면 된다. 별 다른 기술이 필요 없다. 그래서 점점 똥멍청이화 되어 가고 있는 것 같아서... 알고리즘 공부를 시작 한다. 잡담이 길었다.. 아래는 그냥 여기저기 둘러보고 만든 이진트리 만드는 거랑 전위, 중위, 후위 찍는 코드이다. Traversal ? 순회를 한다고 표현을 하던데.. 객체를 만들어서 연결을 시키고 하는게 익숙하지.. 2020. 9. 6.
[codility]MissingInteger Q. 배열내에서 존재하지 않는 0보다 큰 가장 작은 양수값을 찾아라. 음수만 있을 경우는 1로 리턴 A = {1, 3, 6, 4, 1, 2} A. 5 소팅 안 하고 루프 한 번만 돌려서 해 볼려고 별에 별 짓을 다 해 봤는데 안 되더라... 결국에는 소팅 -_- 루프 한번으로 정렬하는 방법은 없는 건가라는 의문에 빠졌다. import java.util.Arrays; class Solution { public int solution(int[] A) { // write your code in Java SE 8 int findVal = 1; Arrays.sort(A); for(int i : A){ if(i > 0 & i == findVal){ findVal++; } } return findVal; } } 2018. 1. 19.
[codility]FrogRiverOne Q. 강 위에 1초마다 나뭇잎이 무작위로 떨어지는데, 개구리가 그걸 밟고 강 반대쪽으로 넘어가는 것이 가능해 지는 가장 빠른 시간을 구해라. 1 ~ N 까지 모든 지점에 나뭇잎이 떨어져야 건널 수 있다. (영어 실력이 미천하여 잘 못 해석 했을 수도 있다....) A = {1, 3, 1, 4, 2, 3, 5, 4} X = 5 A. 6 import java.util.HashSet; class Solution { public int solution(int X, int[] A) { // write your code in Java SE 8 boolean target = false; boolean done = false; int stepCnt = 0; int timeCnt = 0; HashSet chkSet = .. 2018. 1. 19.
[codility]PermCheck Q. 1부터 시작해서 N까지 순서는 무작위 이나, 숫자가 순차적으로 1씩 값이 올라가야 하는 배열이 정상인지 판단해라. 정상이면 1, 빠진값이 있으면 0으로 리턴 {4, 1, 3, 2} = 1 {4, 1, 3} = 0 [성공한 버전] 중복값 여부를 찾기 위해 HashMap을 사용 했다.(HashSet 이 공간을 덜 먹나..? 그건 잘 모르겠다) 계산도 필요없고 중복값, 최소값, 최대값만 찾으면 된다. class Solution { public int solution(int[] A) { // write your code in Java SE 8 int minVal = 1000000000; int maxVal = 0; int rtnVal = 1; Map chkArr = new HashMap(); for(int.. 2018. 1. 18.
[codility] TapeEquilibrium Q. 배열의 포지션 N을 1씩 증가하면서 (좌측 합 - 우측 합) 차이가 가장 작은 값을 구하시오. (N은 1부터 시작함) A = {3,1,2,4,3}; 3 - 10 = 7 4 - 9 = 5 6 - 7 = 1 10 - 3 = 7 A. 1 [멍청이 버전] 루프를 한번만 돌려서 값을 찾아야지 라는 생각에 갇혀서 하다보니 기괴한 방식으로 되었다. 결국은 2번은 돌려야 값을 찾을 수 있게 되었는데... 한번으로 가능하긴 한가..? class Solution { public int solution(int[] A) { // write your code in Java SE 8 int minDiff = 0; if(A.length > 0){ int[][] B = new int[A.length - 1][2]; for(in.. 2018. 1. 17.
[codility] PermMissingElem Q. 1부터 순차적으로 올라가는 순서 무작위 배열 값 중에서 연속되지 않고 빠진 숫자를 찾으세요. A = {2, 3, 1, 5} A. 4 값이 1씩 올라가므로 전체 합을 구하는 공식으로 원래 나와야 할 총계를 구한 다음에 실제 값을 구해서 차이를 구하면 어떤 값이 빠졌는지 알 수 있다. public int solution(int[] A) { long actVal = A.length * (A.length + 1) / 2; long sumVal = 0; for(int i : A){ sumVal = sumVal + i; } return (int)((A.length + 1) - (sumVal - actVal)); } eclipse에서 실행하면 100,000 자리까지 가도 정상적으로 잡아 내는데, codility.. 2018. 1. 12.
[codility] FrogJmp Q. 1회 점프로 D만큼 이동 할 수 있는 개구리가 X지점에서 Y지점으로 이동하기 위해 점프하는 최소 점프 수를 구하시오. X = 10, Y = 85, D = 30 A. 3 [멍청이 버전] 일단 돌리고 보는 거다... public int solution(int X, int Y, int D){ int jumpCnt = 0; while(X 0){ jumpCnt++; } return jumpCnt; } 2018. 1. 12.
반응형