본문 바로가기
반응형

TechNical/JAVA45

[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 < Y){ X = X + D; jumpCnt++; } return jumpCnt; } [괜찮은 버전] 계산식을 만들어서 루프 없이 해결 public int solution(int X, int Y, int D){ int jumpCnt = 0; jumpCnt = ((Y - X)/D); if((Y-X)%D > 0){ jumpCnt++; } return jumpCnt; } 2018. 1. 12.
반응형