본문 바로가기

Algorithm & SQL/programmers37

프로그래머스 JAVA <제일 작은 수 제거하기> 제일 작은 수 제거하기 문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예arrreturn [4,3,2,1] [4,3,2] [10] [-1] 코드실행은 맞췄지만, 제출 후 채점을 하면 런타임에러가 발생해서 한참을 고민했다. 런타임에러가 일어나는 이유는 아래에서 answer[i] = arr[i] 로 실행할 경우 continu.. 2022. 6. 16.
프로그래머스 JAVA <최대공약수와 최소공배수> 최대공약수와 최소공배수 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. 입출력 예nmreturn 3 12 [3, 12] 2 5 [1, 10] 입출력 예 설명 입출력 예 #1 위의 설명과 같습니다. 입출력 예 #2 자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다. class Solution { public int[] solution(in.. 2022. 6. 16.
프로그래머스 JAVA <약수의 합> 약수의 합 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예nreturn 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. class Solution { public int solution(int n) { int answer = 0; for(int i=1; i 2022. 6. 15.
프로그래머스 JAVA <자릿수 더하기> 자릿수 더하기 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예Nanswer 123 6 987 24 입출력 예 설명 입출력 예 #1 문제의 예시와 같습니다. 입출력 예 #2 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다. import java.util.*; public class Solution { public int solution(int n) { int answer = 0; int sum =0; while(n>0){ sum += n % 10; n = n/10; } .. 2022. 6. 15.
프로그래머스 JAVA <짝수와 홀수> 짝수와 홀수 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예numreturn 3 "Odd" 4 "Even" class Solution { public String solution(int num) { String answer = ""; if(num % 2 == 0) { answer = "Even"; } else { answer = "Odd"; } return answer; } } 2022. 6. 15.
프로그래머스 JAVA <평균 구하기> 평균 구하기 문제 설명 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arrreturn [1,2,3,4] 2.5 [5,5] 5 기억하기 - 배열의 길이 구하기 length - length는 배열의 길이를 알고자 할때 사용된다. length() - length()는 문자열의 길이를 알고자 할때 사용된다. class Solution { public double solution(int[] arr) { double answer = 0; double sum =0; for(int i =0; i 2022. 6. 14.
프로그래머스 JAVA <하샤드 수> 하샤드 수 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예arrreturn 10 true 12 true 11 false 13 false 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿.. 2022. 6. 14.
프로그래머스 JAVA <핸드폰 번호 가리기> 핸드폰 번호 가리기 문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 phone_number는 길이 4 이상, 20이하인 문자열입니다. 입출력 예phone_numberreturn "01033334444" "*******4444" "027778888" "*****8888" 사용한문법 : charAt() 을 사용 - 문자열의 index 값을 이용해서 원하는 값을 가져올 수 있다. class Solution { public String solution(String p.. 2022. 6. 14.
공식정리 - 가우스의 덧셈 공식 가우스는 초3 때 이런 공식을 알아냈다는데, 나는 바봉가보다 package DOIT.chapter1; import java.util.Scanner; public class 가우스의덧셈 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int sum =0; //가우스의 덧셈 공식 sum = n*(n+1) /2; System.out.println("sum = " + sum); } } 2022. 6. 13.