알고리즘 풀이

N개수 10만개 보고 sorting 하는 것을 두려워하지 말자.. 할거 다 해보고 도저히 모르겠을 때 해답보기, 오버플로우를 대비해서 이항시켜주기 1234567891011121314 public int solution(int[] A) { // write your code in Java SE 8 if(A.length=2; i--){ if(A[i-1]>A[i-2]-A[i] && A[i-2]>A[i]-A[i-1] && A[i]>A[i-1]-A[i-2]) return 1; } return 0; }Colored by Color Scriptercs ※ 알고보니 저 트라이앵글 식 중에 마지막 식만 만족해도 앞에 2개식도 만족하는 구도인 것을 알게됨
12345678 public int solution(int[] A) { // write your code in Java SE 8 HashSet hs = new HashSet(); for(int a : A) hs.add(a); return hs.size(); }Colored by Color Scriptercs
+++큰 순으로 3개 --작은순으로 2개 & +큰순으로 1개 1234567891011121314151617 public int solution(int[] A) { // write your code in Java SE 8 Arrays.sort(A); int leng = A.length; // for(int a : A ) System.out.println(a); int mmp = A[0]*A[1]*A[leng-1]; int ppp = A[leng-1]*A[leng-2]*A[leng-3]; return (mmp>ppp)?mmp:ppp; }Colored by Color Scriptercs
1. K로 나눠지는 가장 첫번째 인자 x(A
수학적 지식이 필요한 문제, 사실상 전형적 코테용 알고리즘은 아니라고봄.. 물론 당연히 못풀었고 수학적 지식을 활용한 풀이기법만 익히면 1분컷 가능한 문제 (2,3개의 최소평균값의 첫번째 인덱스 구하기 문제) 12345678910111213141516171819202122 public int solution(int[] A) { // write your code in Java SE 8 double minValue = (double) Integer.MAX_VALUE; int min = 0; for (int i = 0; i
메모리초과 -BufferedReader 프로그래머스랑 똑같은 문제인데 프로그래머스에서는 최대 탑 개수가 100개임 (이중 for문으로도 뚝딱) N의 개수로 시간초과, 메모리 초과를 조절해주어야하는 문제임. for문 만드는 것은 스택이 비어있을 경우를 생각하고 while문을 활용해 신규 탑보다 작은 모든 값을 popping 시켜줌 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;impo..
풀이법을 몰라서 못풀었다. 절대 완전탐색이 아니라는 것은 자명한 사실이었고, 단순히 인덱스 2개만으로 그 사이에 A,C,G가 포함되어있는지 대체 어떻게 알 수 있을까 고민하고 정답을 보니 알파벳의 누적개수를 이용해서 인덱스 사이의 누적개수 변화를 활용해 문제를 해결하는 방식이었다. A,C,G순서대로 해당 알파벳에서 변화를 할 경우 뒤에 것을 확인할 필요가 없다는 것 A,C,G 3개의 알파벳 모두 변화를 안하면 마지막 남은 T가 변화한다는 것 테크닉만 알면 쉬운 문제였는데 IF ELSE문 자주 안쓰고 IF IF만 쓰다보니까 엉뚱한 곳에서 실수함 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 pub..
123456789101112131415161718 public int solution(int[] A) { // write your code in Java SE 8 int accum = 0; int sum = 0; for (int i = A.length - 1; i >= 0; i--) { if (A[i] == 1) accum++; else sum += accum; if(sum>1000000000) return -1; } return sum; }Colored by Color Scriptercs
123456789101112131415161718192021 public int solution(int[] A) { // write your code in Java SE 8 HashSet hs = new HashSet(); for (int a : A) hs.add(a); int v = 0; for (int i = 0; i
123456789101112 public int solution(int[] A) { Arrays.sort(A); int comparativeValue = 1; for (int i = 0; i
배게
'알고리즘 풀이' 카테고리의 글 목록 (18 Page)