본문 바로가기

프로그래머스34

[프로그래머스] 코딩테스트 입문 : 구슬을 나누는 경우의 수 | 문제머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다.머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해 주세요.| 제한 사항1 ≤ balls ≤ 301 ≤ share ≤ 30구슬을 고르는 순서는 고려하지 않습니다.share ≤ balls| 입출력 예ballsshareresult3235310| 힌트balls가 3이고 share가 2라면 result는 (3 * (3-1)) / (2 * (2-1))이고balls가 5이고 share이 3이라면 result는 (5 * (5-1) * (5-2)) /.. 2024. 10. 8.
[프로그래머스] 코딩테스트 입문 : 가위 바위 보 | 문제가위는 2 바위는 0 보는 5로 표현합니다.가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때,rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return 하도록 solution 함수를 완성해 보세요.| 제한 사항0 ≤ 100rsp와 길이가 같은 문자열을 return 합니다.rsp는 숫자 0,2,5로 이루어져 있습니다.| 입출력 예rspresult"2""0""205""052"| 힌트가위 바위 보에서 핵심은 항상 승자와 패자가 고정되어 있다는 사실입니다. 그 어떤 상황에서도 가위와 바위가 싸우면 바위가 이기죠.다시 말해서 이 문제는 복잡한 가위, 바위, 보 연산을 하는 문제가 아니라,2(가위)는 0(바위)으로, 0(바위)는 5(보)로, 5(보)는 .. 2024. 10. 3.
[프로그래머스] 코딩테스트 입문 : 모스부호(1) | 문제머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다.그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다.문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해 보세요. 모스부호는 다음과 같습니다.morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':.. 2024. 10. 2.
[프로그래머스] 코딩테스트 입문 : 개미군단 | 문제개미군단이 사냥을 나가려고 합니다.개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다.장군개미는 5의 공격력을, 병정개미는 3의 공격력을, 일개미는 1의 공격력을 가지고 있습니다.예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만,장군개미 4마리와 병정개미 1마리를 데려간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때,사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return 하도록 solution함수를 완성해 주세요.| 제한 사항hp는 자연수입니다.0 ≤ hp ≤ 1000 | 입출력 예hpresult235246999201| 힌트코딩테스트에 익숙하지 않은 분들이 헷갈릴만한 요.. 2024. 10. 1.
[프로그래머스] 코딩테스트 입문 : 순서쌍의 개수 | 문제순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로(a,b)로 표기합니다.자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.| 제한 사항1 ≤ n ≤ 1,000,000 | 입출력 예nresult2061009| 힌트두 숫자의 곱이 n이면 둘 중에 하나의 숫자로 n을 나눴을 때 나머지가 0입니다.| 풀이 1힌트에서 제시한대로 특정 숫자 i를 n으로 나눴을때 나머지가 0인 숫자의 개수를 구했습니다.주어진 숫자가 20일 경우 순서쌍이 (1,20),(2,10),(4,5),(5,4),(10,2),(20,1)로 총 6라면 우리는 두개의 순서쌍 중에서 앞에 오는 숫자만 구해준 것이죠.public class Solutio.. 2024. 9. 30.
[프로그래머스] 코딩테스트 입문 : 진료순서 정하기 | 문제외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return 하도록 solution 함수를 완성해 주세요.| 제한 사항중복된 원소는 없습니다.1 ≤ emergency의 길이 ≤ 101 ≤ emergency의 원소 ≤ 100| 입출력 예emergencyresult{3,76,24}{3,1,2}{1,2,3,4,5,6,7}{7,6,5,4,3,2,1}{30,10,23,6,100}{2,4,3,5,1}| 힌트정수 배열은 주어진 값을 크기 순서대로 정렬할 수 있습니다. 정렬된 배열과 정렬하지 않은 배열을 비교하면 순서를 알 수 있지 않을까요?| 풀이 1기존 배열 emergen.. 2024. 9. 20.
[프로그래머스] 코딩테스트 입문 : 외계행성의 나이 | 문제우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다.입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다.a는 0, b는 1, c는 2, ..., j는 9입니다.예를 들어 23살은 cd, 51살은 fb로 표현합니다.나이 age가 매개변수로 주어질 때 PROGRAMMERS-962식 나이를 return하도록 solution 함수를 완성해주세요.| 제한 사항age는 자연수입니다.age ≤ 1,000PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.| 입출력 예ageresult23"cd"51"fb"100"baa"| 힌트아시다시피 자바에서 순서를 나타내는 인덱스는 0부터 출발합니다.a는 0, b는.. 2024. 9. 19.
[프로그래머스] 코딩테스트 입문 : 배열 자르기 | 문제정수 배열 number와 정수 num1, num2가 매개변수로 주어질 때,numbers의 num1번째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을return 하도록 solution 함수를 완성해 보세요.| 제한 사항2 ≤ numbers의 길이 ≤ 300 ≤ numbers의 원소 ≤ 1,0000 ≤ num1 | 입출력 예numbersnum1num2result[1,2,3,4,5]13[2,3,4][1,3,5]12[3,5]| 힌트~부터 ~까지가 나오면 for문의 초기식과 종료식을 떠올리세요.for문에 int i = 0 ;처럼 정해진 식만 쓸 수 있는 건 아니에요. 고정관념은 깨고, 더 넓고 다양하게 생각해 보아요.| 풀이 1언제나 그렇듯 최대한 주어진 문제를 직관적으로 풀어내려고 노력한 풀이법입니.. 2024. 9. 12.
[프로그래머스] 코딩테스트 입문 : 짝수의 합 | 문제정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해 주세요.| 제한 사항0 | 입출력 예nresult103046| 힌트홀수와 짝수를 판단하는 기준이 2로 나눴을 때 나머지라는 사실을 기억하세요.지금 머릿속에 그려지는 그대로 풀어가시면 됩니다.연속한 두 항의 차가 일정한 수열을 뜻하는 등차수열을 활용할 수도 있습니다.| 풀이 1우리가 아는 자연수중에서 가장 작은 짝수 2에서부터주어진 숫자 n까지 2의 배수 즉, 짝수들을 하나씩 더해줍니다.public int solution01(int n) { int answer = 0; for(int i = 2 ; i | 풀이 2좀 더 그럴싸한 방법을 찾는 분들께 제안드리는 방식입니다. 수학시간에 배운.. 2024. 9. 10.