본문 바로가기

Algorithm/Programmers71

JadenCase 문자열 만들기 · 문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. · 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 ) · 입출력 예 s return 3people unFollowed me 3people Unfollowed Me for the last week For The Last Week · Thinking 1 split 함수 사용해서 공백 기준으로 나누기 class Solution { public St.. 2019. 6. 4.
H-Index · 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h가 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. · 제한 사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. · 입출력 예 citations r.. 2019. 6. 4.
124 나라의 숫자 · 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. · 제한 사항 n은 500,000,000이하의 자연수 입니다. · 입출력 예 n result 1 1 2 2 3 4 4 11 5 12 6 14 7 21 8 22 9 24 · Thinking 1 규칙 알아내기..! 1 1 몫 0 2 2 3 4 3의 배수 3까지 한자리 숫자 4 4 11 몫 1 5 12 6 14 3의 배수 6까지 두자리 숫자 14.. 2019. 6. 4.
행렬의 덧셈 · 문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. · 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. · 입출력 예 arr1 arr2 return [[1, 2], [2, 3]] [[3, 4], [5, 6]] [[4, 6], [7, 9]] [[1], [2]] [[3], [4]] [[4], [6]] · 완성 코드 class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.lengt.. 2019. 5. 31.
핸드폰 번호 가리기 · 문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. · 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. · 입출력 예 phone_number return 01033334444 *******4444 027778888 *****8888 · Thinking 1 1. string 길이 구해서 길이-4까지 *대입 2. 포문 두개를 쓸까 그냥? · 완성 코드 class Solution { public String solution(String phone_number) { S.. 2019. 5. 31.
하샤드 수 · 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. · 제한 조건 x는 1 이상, 10000 이하인 정수입니다. · 입출력 예 arr return 10 true 12 true 11 false 13 false · 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모.. 2019. 5. 31.
평균 구하기 · 문제 설명 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. · 제한 사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. · 입출력 예 arr return [1, 2, 3, 4] 2.5 [5, 5] 5 · 완성 코드 class Solution { public double solution(int[] arr) { int sum = 0; for (int i = 0; i < arr.length; i ++) sum += arr[i]; return (double) sum / arr.length; } } · 문제 출처 https://programmers.co.kr/learn/courses/30/.. 2019. 5. 31.
콜라츠 추측 · 문제 설명 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을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. · 제한 사항 입력된 수, num은 1 이상 8000000 미만인 정수입니다. ·.. 2019. 5. 31.
최대공약수와 최소공배수 · 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. · 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. · 입출력 예 n m return 3 12 [3, 12] 2 5 [1, 10] · 입출력 예 설명 입출력 예 #1 위의 설명과 같습니다. 입출력 예 #2 자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다. · Thinking 1 - 유클리드 호제법 : 두 수 중 큰 수와 작은 수를 .. 2019. 5. 31.