알고리즘
-
[programmers] 자연수 뒤집어 배열로 만들기알고리즘 2019. 12. 4. 23:52
접근방법 1. 일단 각 숫자를 배열로 만들려고함.2. 문자열로 변환시킨뒤3. split을 이용해 쪼갬4. 반복문과 카운트 변수를 이용해 결과값을 만듬 처음에는 StringBuffer class의 revers()메소드로 편하게 하려했으나, 구현체를 보니 복잡도나 메모리측면에서 좋지않은 것으로 판단.for문을 돌때 결과값을 역으로 넣기로 함 package com.cm; /** * 문제 : 자연수 뒤집어 배열로 만들기 * https://programmers.co.kr/learn/courses/30/lessons/12932 * * 문제 설명 * 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. * * 제한 조건 * n은 ..
-
[Codility] TapeEquilibrium 100점알고리즘 2019. 3. 31. 23:21
문제 출처 : https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/ 문제요약 : 주어진 배열에서 각구간에서 차를 구한뒤 차가 가장 작은 정수를 반환하는 것. ex) int[] A= {3, 1, 2, 4, 3};1번째 : 3 -(1+2+4+3) = 3 - 10 = 72번째 : (3+1) - (2+4+3) = 4 - 9 = 53번째 : (3+1+2) - (4+3) = 6 - 7 = 14번째 : (3+1+2+4) - 3 = 10 - 3 = 7 이중에 가장 작은 값을 반환. -> 1 [100점]https://app.codility.com/demo/results/training33VKAK-5FM/ 이 단원의 핵심은 시간 복..
-
[Codility] PermMissingElem 30→80→100알고리즘 2019. 3. 31. 00:35
문제출처 : https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/ 문제요약 : 배열안에 여러개의 정렬되지 않은 숫자(1, n+1, ...)가 있다 여기서 빠진 요소 하나를 반환해라. -숫자범위는 0~100000 - 중복된 숫자는 제거해라 [30점]https://app.codility.com/demo/results/trainingSCGD52-MA7/문제의도를 아얘 잘못 파악했다.. 12345678910111213141516171819202122232425262728import java.util.*; // you can write to stdout for debugging purposes, e.g.// System...
-
[Codility] FrogJmp 100점알고리즘 2019. 3. 23. 23:29
문제출처 : https://app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/ 문제요약 : 개구리가 몇번을 뛰어야 해당지역으로 갈수있냐! 라는 문제다X : 개구리의 위치Y : 도착위치D : 개구리의 점프력(?) 이다 예를들어 개구리의 위치가 10이고, 도착해야 할 거리는 85, 개구리의 점프력은 30이면현재 위치(10)에서 도착지까지(85) 부족한 거리는 75다개구리가 1번 점프(30)하면 현재위치(10) + (30) = 40이다2번 점프하면? 40+30=70인 것이다. [100점]12행 Y-X/D를 통해서 점프해서 갈 수 있는 값을 구했다.그리고 13행에서는 Y-X%D의 몫이 있다면 1을 증가시켰다.else는 딱 나눴을때 몫이 없다면 점프..
-
[Codility] CyclicRotation 87점→100점알고리즘 2019. 3. 3. 16:56
문제출처 : https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/ 문제요약 : 입력받은 횟수(K)만큼 배열을 순환시키는 것. 맨뒤의 요소를 뽑아서 앞으로 넣은후 한칸씩 인덱스를 밀어주는 형식 [100점] 문제를 보면 배열의 맨뒤의 요소를 뽑아서 앞으로 넣은 후 그뒤에 요소들을 하나씩 밀어가고있다. ex) 2회전 주어진배열 {1, 2, 3}1회전 {3, 1, 2}2회전 {2, 3, 1} 자료구조를 공부를했다면 쉽게 풀 수 있는 문제다. 바로 선입선출(FIFO)성질을 가진 Que를 선택했다. 조금 아쉬운 점은 Que를 Array로 변환하는 과정이 조금 지저분하다는 생각이 들었다. 충분히 리팩토링 할 코드라고 생각한다. 123456789..
-
[Codility] OddOccurrencesInArray 55점→100점알고리즘 2019. 2. 16. 18:41
문제 출처 : https://app.codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array/ 문제요약 : 배열요소중에서 짝이 없는 요소의 값을 출력해라 [55점] O(n**2) 처음 접근 방식은 모든배열의 요소를 돌면서 같은 숫자가 있으면 count라는 변수값을 증가 시키고.최종적으로 1개만 있는 경우를 return해주게했다. 결과는 10만건이상의 데이터가 들어왔을때 TimeOut이 발생했다.. ㅎㅎㅎ 심지어 코드도 지저분.. 1234567891011121314151617181920212223242526272829303132package test_java2; import java.util.*; public class Main { public..