목록알고리즘 (14)
개발의 흔적
안녕하세요. 프로그래머스에 있는 "제일 작은 수 구하기" 알고리즘 문제를 풀어보겠습니다. 문제 : 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 출력 : [4,3,2,1] [4,3,2] [10] [-1] 코드 : * 문제 해설 * 정수 배열 : {4,3,2,1} 이문제는 가장 최소값을 구합니다. 최소값과 최소값의 인덱스를 구합니다. 그이유는 최소값의 인덱스를 이용하여 가장 작은값을 제거합니다. 무조건 최소값의 인덱스는 제거가 되기때문에 길이는 기존 정수배열 보..
안녕하세요. 프로그래머스에 있는 "콜라츠 추측" 알고리즘 문제를 풀어보겠습니다. 문제 : 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 출력 : 6 8 16 4 626331 -1 코드 : * 문제 해설 * 입력된 정수의 값이 1이 될때까지 반복을 시킵니다. 입력된 수가 짝수라면 2로 나눕니다. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 그후 반복된 값에 대해선 count를 줍니다. 정수 : 6 6 % 2 = 3 3 * 3 + 1 = ..
안녕하세요. 프로그래머스에 있는 "최대공약수와 최소공배수" 알고리즘 문제를 풀어보겠습니다. 문제 : 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 출력 : 3 12 [3, 12] 2 5 [1, 10] 코드 : * 문제 해설 * 최대공약수 : 두가지의 값중 0으로 나누어떨어지는 공통적인 값중 가장 큰값 최소공배수 : 두가지의 값을 곱한값중 공통된 곱한값 * 코드 해설 * 최대공약수를 구하기 위해 바깥쪽 for문에 가장작은 값을 반복 시킨다. 반복을..
안녕하세요. 프로그래머스에 있는 "평균 구하기" 알고리즘 문제를 풀어보겠습니다. 문제 : 정수를 담고 있는 배열 arr의 평균값을 return하는 함수를 만들어야 합니다. 출력 결과 : [1,2,3,4] 2.5 [5,5] 5 코드 : * 문제 해설 * 배열의 전체 수 더한값을 배열의 길이만큼 나눈 값을 평균이라고한다. * 코드 해설 * 바깥쪽 for문은 정수 배열의 길이만큼 반복을 합니다. 그후 정수 배열의 인덱싱 값을 str문자열에 저장을 합니다. 왜냐, 배열 정수값은 배열 문자열이기에 바로 더할 수 가없습니다. 그렇기에 문자열로 저장후 다시 정수로 변환후 반복될때마다 값을 num에 차곡차곡 저장하여 값을 더합니다. 그후 저장되는 값이 double이기에 캐스팅을 하여 평균값을 구합니다. 더좋은 코드가있..