프로그래머스 37

[코딩테스트] 같은 숫자는 싫어

문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 같..

[ 코딩테스트 ] 가운데 글자 가져오기

문제설명단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.  단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다.입출력 예sreturn"abcde" "c""qwer" "we"  나의 풀이class Solution { public String solution(String s) { return (s.length() % 2 != 0) ? s.substring(s.length() / 2, s.length() / 2 + 1) : s.substring(s.length() / 2 - 1, s.length() / 2 + 1); }}

[ 코딩테스트 ] 제일 작은 수 제거하기

문제 설명 정수를 저장한 배열, arr 에서  가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.  단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.  예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예arr return[4,3,2,1][4,3,2][10][-1]나의 풀이-> 먼저 배열에 들어있는 값이 1개면 -1 리턴하기.배열 안에 있는 숫자 내림차순으로 정렬한 뒤에 (integer로 바꿔서) 맨 마지막 값 뺴고 차례대로 리턴하기.import java.util.Ar..

[ 코딩테스트 ] 콜라츠 추측

문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다.  1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.  2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.  예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다.  위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요.  단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. 제한 ..

[ 코딩테스트 ] 프로그래머스 나누어 떨어지는 숫자 배열

문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예arr divisor return[5, 9, 7, 10] 5[5, 10][2, 36, 1, 3] 1[1, 2, 3, 36][3,2,6] 10[-1]입출력 예 설명 입출력 예#1 arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10..

[ 코딩테스트 ] 프로그래머스 월간 코드 챌린지 시즌2 음양더하기

문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와  이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다.  실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예 absolutes signs result[4,7,12][true,false,true] 9[1,2,3] [false,false..

[코딩테스트] 하샤드 수

문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고,  18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예xreturn10true12true11false13false입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합은 2입니다. 11은 ..

[ 코딩테스트 ] 정수 내림차순으로 배치하기, 두 정수 사이의 합, 정수 제곱근 판별

주말에 넘 머리 비우고있었나집중 안되서 오늘은 질보다 양으로,, ,,,ㅠ   문제 설명함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다.입출력 예nreturn118372 873211  나의 풀이-> long 을 문자열 배열에 담고, 오름차순으로 정렬한 뒤에 내림차순으로 뒤집기import java.util.Arrays;class Solution { public long solution(long n) { char[] arr = String.valueOf(n).toCharArray(); ..

[코딩테스트 ] 프로그래머스 Lv1. 핸드폰 번호 가리기

문제 설명프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 phone_number는 길이 4 이상, 20이하인 문자열입니다.입출력 예phone_number return"01033334444""*******4444""027778888""*****8888"  나의 풀이-> 뒤에서 맨 앞 글자부터 끝에서 4번째 글자까지 *으로 치환하기.class Solution { public String solution(String phone_num) { re..

[ 코딩테스트 ] 프로그래머스 Lv2. 기능개발

문제설명프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고,  이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와  각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때  각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 ..