목록알고리즘 (14)
개발의 흔적
안녕하세요. 프로그래머스에 있는 "약수의 합" 알고리즘 문제를 풀어보겠습니다. 문제 : 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 출력 : 12 28 5 6 코드 : * 문제 해설 * 정수 : 12 정수의 약수를 구합니다. 정수의 약수는 0으로 떨어지는 값들을 모두더합니다. * 코드 해설 * for문의 바깥쪽 길이만큼 반복을합니다. 그 후 길이만큼 반복을 한후 0으로 떨어지는 값중 몫의 값이 정수의 약수들이기 때문에 값들을 더하면 정수의 약수들이 나옵니다. 좋은 코드있으면 공유 바랍니다. 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
안녕하세요. 프로그래머스에 있는 "정수 내림차순으로 배치하기" 알고리즘 문제를 풀어보겠습니다. 문제 : 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 출력 : 118372 873211 코드 : * 문제 해설 * 정수 : 118372 Long타입의 정수의 길이를 구해야합니다. 그후 "버블정렬"를 이용하여 가장 작은값이 인덱스의 맨마지막쪽으로 들어갑니다. 버블 정렬 : 정렬 기법중 하나로 맨앞 0번쨰 인덱스와 1번째 인덱스를 비교하여 가장 큰값 또는 가장 작은값을 오른쪽으로 치환하는 기법입니다. 물론 Arrays.sort()를 써서 정렬을 구현할수있습니다. 하지..
안녕하세요. 프로그래머스에 있는 "자연수 뒤집어 밸로 만들기 " 알고리즘 문제를 풀어보겠습니다. 문제 : 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 출력 : 12345 [5,4,3,2,1] 코드 : * 문제 해설 * 정수 : 12345 정수를 뒤집기 위해서 정수의 길이를 구합니다. 원래는 정수를 하나씩 잘라서 마지막 인덱스 값부터 차례대로 값을 처리하려고했지만 10으로 나누어 나머지값을 넣었습니다. * 코드 해설 * 현재 정수 n의값은 길이를 알수가없습니다. 길이를 알기위해 자료형을 변환 시켜야합니다. Long.toString의 함수를 이용하여 String 길이를 저장합니다. 저장한 길이를 int[] 배열의..
안녕하세요. 프로그래머스에 있는 "정수 제곱근 판별" 알고리즘 문제를 풀어보겠습니다. 문제 : 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 출력 : 121 144 3 -1 코드 : * 문제 해설 * 정수 : 121,3 API사용안하고 제곱근구하는방법 1. 제곱근이란 : 정수a의값을 두번 곲한 값 121의 제곱근을 구하기 위해 for문을 i부터 121까지의 길이만큼 곱합니다. ( i * i == 121) 121 -> 11 * 11의 제곱근이 나옵니다. * 코드 해설 * 현재 제곱근을 Math.sqrt()의 api를 사용하여 제곱근..