알고리즘 풀이

MAX counter로 모든 원소를 MAX로 채우는 작업을 실시간으로 해주면 시간초과나서 틀림, MAX counter할 MAX값을 for문 끝날때까지 계속 갱신시켜주면서 for문 탈출 후 가장 마지막에 쭉 갱신시켜주면됨 12345678910111213141516171819202122232425262728 public int[] solution(int N, int[] A) { // write your code in Java SE 8 int[] res = new int[N]; int nowMax = 0; int preMax = 0; for (int i = 0; i N) { preMax = nowMax; } else { if (res[A[i] - 1] > preMax) res[A[i] - 1]++; else ..
건너지 못하는 경우일 때 return -1 123456789101112131415161718192021222324252627 public int solution(int X, int[] A) { // write your code in Java SE 8 boolean[] canJump = new boolean[X + 1]; int pre = 0; int index = 0; for (; index
123456789101112131415161718 public int solution(int[] A) { // write your code in Java SE 8 int min = Integer.MAX_VALUE; int sumOfSecondPart = 0; for (int a : A) { sumOfSecondPart += a; } int sumOfFirstPart = 0; for (int i = 0; i
시간복잡도 때문에 2번 틀림, 정렬이나 그런 것 하지말고 O(n)으로 한번에 끝내야함 12345678910111213 public int solution(int[] A) { // write your code in Java SE 8 int leng = A.length+1; int sum=0; if(leng%2==0) sum=(leng+1)*(leng/2); if(leng%2==1) sum=((leng+1)/2)*(leng); for(int a : A){ sum-=a; } return sum; }Colored by Color Scriptercs
1234 public int solution(int X, int Y, int D) { // write your code in Java SE 8 return (Y-X)%D==0? (Y-X)/D : (Y-X)/D+1; }Colored by Color Scriptercs
비어있는 배열 들어오는 경우의 수를 생각해줘야한다 12345678910111213141516 public int[] solution(int[] A, int K) { // write your code in Java SE 8 if (A.length == 0) return new int[] {}; int[] ans = new int[A.length]; K = K % A.length; for (int i = 0; i
arrayList에 넣어준 후 오름차순 정렬, 홀수번째 값 (index상으로는 i%2==0인 i값)을 기준으로 다음 값(짝수번째)이 홀수번째값과 같을 때 continue, 조건을 만족하지 않으면 break, for문이 끝에 도달할 경우 따로 처리 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 public int solution(int[] A) { // write your code in Java SE 8 // for(int i : A){ // System.out.println(i); // } ArrayList arr = new ArrayList(); for (int i = 0; i
1이 시작될 때 isCountable을 켜준다는 것 주의해주면됨 나머지는 2진수 만들기, counting하기 12345678910111213141516171819202122232425262728293031323334353637383940 public int solution(int N) { // write your code in Java SE 8 int answer = 0; System.out.println(N); String binary = decToBinary(N); System.out.println(binary); int count = 0; boolean isCountable = false; for (int i = 0; i answer) answer = count; count = 0; } if (bi..
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 static final int STUDENT_NUM = 3; static int[] student1_guessPattern = {1,2,3,4,5}; static int[] student2_guessPattern = {2,1,2,3,2,4,2,5}; static int[] student3_guessPattern = {3,3,1,1,2,2,4,4,5,5}; public int[] solution(int[] answers) { int[] score = getScore(answers); int topScore = getTopScore(s..
람다식을 생각 못하고 일일히 숫자들을 string으로 바꾸고 charAt으로 비교해주는 식으로 멍청하게 했다. 일단은 속도는 둘째치고 보기 편한 식인 람다식으로 만들기 위해 string을 붙여서 비교한다는 생각을 못했던 것이 제일 큰 실수였다. 1234567891011121314151617181920212223 public String solution(int[] numbers) { String answer = ""; List arr = new ArrayList(); for (int i = 0; i -Integer.compare(Integer.parseInt(a + b), Integer.parseInt(b + a))); // System.out.println(); StringBuilder sb = new ..
배게
'알고리즘 풀이' 카테고리의 글 목록 (19 Page)