본문 바로가기

알고리즘

(15)
두개뽑아서 더하기 프로그래머스 문제 두개뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. ex) insert [2,1,3,4,1] -> result [2,3,4,5,6,7] 인덱스 하나하나 더하고 겹치는 숫자는 제거해서 출력한다. import java.util.Arrays; import java.util.ArrayList; import java.util.Collections; public class Solution1 { public int\[\] solution(int\[\] numbers) { int\[\] answer = {}; ArrayL..
제일 작은 수 제거 프로그래머스 문제 제일 작은 수 제거 하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. public class MinNumber { public int[] solution(int[] arr) { ArrayList list = new ArrayList(); if (arr.length == 1) { return new int[] {-1}; } int min = arr[0]; // 제일 작은수 찾는 로직 for(int i=0;i arr[i]) { min = arr..
정수 제곱근 판별 프로그래머스 문제 정수 제곱근 판별 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. ex) 121(11) -> 144(12) / 3 -> -1 출력 class Solution { public long solution(long n) { long answer = 0; long result = (long)Math.sqrt(n); if (n == 1) { answer = (n+1)*(n+1); } else if(n/result == result && n%result == 0) { result += 1; answer = result*r..
정수내림차순으로 배치하기 프로그래머스 문제 정수내림차순으로 배치하기 n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. ex) 431562 -> 654321 으로 정렬 import java.util.Arrays; public class IntDescendingOrder { public long solution(long n) { long answer = 0; String str = Long.toString(n); // 문자열로 변환 String[] a_str = str.split(""); // 문자열 나누기 Arrays.sort(a_str, Comparator.reverseOrder()); // 내림차순 정렬 String test = ""; for(int i=0;i
자연수 뒤집어 배열로 만들기 프로그래머스 문제 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴하시오. ex) n이 12345이면 [5,4,3,2,1]을 리턴한다. import java.util.Arrays; public class NatualArray { public int[] solution(long n) { String str = Long.toString(n); int[] answer = new int[str.length()]; for (int i=0;i
자릿수 더하기(난이도 하) 프로그래머스 알고리즘 문제 문제) 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 함수를 만들어야 한다. ex) N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. public class Main { public static int numadd(int n){ int answer = 0; String str; str = Integer.toString(n); for (int i=0;i
이상한 문자 만들기(난이도 하) 프로그래머스 알고리즘 문제 문제) 이상한 문자 만들기 각 단어를 짝수번째 알파벳은 대문자 홀수번째 알파벳은 소문자로 변환시켜 출려하는 문제 문자열 전체의 짝/홀수가 아니라 각각 단어를 기준으로 한다. 공백을 기준으로 짝/홀수를 판단한다. public class Main { public static String solution(String s) { String answer = ""; int count = 0; char tmp; for (int i=0;i