알고리즘
-
[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은 ..
-
[programmers] 제일 작은 수 제거하기알고리즘 2019. 12. 3. 23:49
접근 방법 1. 배열을 리스트로 변환한다2. Collections.min을 이용해 최소값을 찾는다.3. 찾은 최소값을 제거한다4. 리스트를 다시 배열로 반환한다. package com.cm; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** * https://programmers.co.kr/learn/courses/30/lessons/12935?language=java * * 문제 설명 * 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. * 단, 리턴하려는 배열이 빈 배열인 경우엔 ..
-
[Codility]MaxCounters알고리즘 2019. 5. 6. 21:27
문제출처 https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/ 문제요약 연산방법 2가지가 주어짐 increase : 배열 요소 값중 일부거 1증가 max counter : 배열요소 값중 가장큰 값으로 모든 배열 요소를 치환 코드44점 정답률100%, 퍼포먼스 모두 time outhttps://app.codility.com/demo/results/trainingT3R5JY-QZA/ 아무래도 stream이 문제인거 같음.. 123456789101112131415161718192021222324import java.util.*; class Solution { public int[] solution(int N, int[] A..
-
[Codility] FrogRiverOne 27→100알고리즘 2019. 5. 6. 20:56
문제출처 https://app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/ 문제요약 개구리가 나뭇잎을 밣고목표지점까지 건너가야한다. 나뭇잎은 매초마다 여러위치에 랜덤으로 떨어진다. 주어진 배열의 인덱스는 '초'를 의미하며, 요소값은 나뭇잎이이 떨어 지는 위치를 의미한다. 나뭇잎이 목표지점까지 모두 떨어져 있어야 건너갈 수있다. 건너 갈수 없다면 -1 리턴. 목표지점이 10이라면 11까지 가야된다. 코드[27점] 오답+성능Xhttps://app.codility.com/demo/results/trainingGYCN5H-D7P/ 이번문제는 문제를 이해하는대 오래걸렸다.. 같은 스터디 조원한분이 잘 설명해주서어 쉽게 풀수 있었다.여러..
-
[Codility] PermCheck 100점알고리즘 2019. 5. 6. 20:12
문제 출처 https://app.codility.com/programmers/lessons/4-counting_elements/perm_check/ 문제요약 - 주어진 배열안의 값은 순열이다. 이중에서 중간에 빠진 값이 있으면 1출력 빠진값이 없으면 0출력 코드[100점]https://app.codility.com/demo/results/trainingAXRWN5-ZKS/ 주어진 수를 정렬 시킨다음에 반복문의 i값을 이용하여 비교하였음 1234567891011121314 import java.util.*; class Solution { public int solution(int[] A) { Arrays.sort(A); for(int i=0 ; i
-
[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...