본문 바로가기

프로그래머스

(132)
예산 /* 예산 * S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. * 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. * 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. * 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. * 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, * 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. * 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, * 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. *..
3진법 뒤집기 /* 3진법 뒤집기 * 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, * 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. * * n은 1 이상 100,000,000 이하인 자연수입니다. * * n result * 45 7 3진법 : 1200 / 반전 : 0021 / 10진법 : 7 * 125 229 3진법 : 11122 / 반전 : 22111 / 10진법 : 229 */ 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152public class Programmer_1_39 { static int a1 = 1; sta..
이상한 문자 만들기 /* 이상한 문자 만들기 * 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. * 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. * 각 단어의 짝수번째 알파벳은 대문자로, * 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. * * 문자열 전체의 짝/홀수 인덱스가 아니라, * 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. * 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. * * s return * "try hello world" "TrY HeLlO WoRlD" */ 1234567891011121314151617181920212223242526272829public class programmer_1_38 { static..
같은 숫자는 싫어 /* 같은 숫자는 싫어 * 배열 arr가 주어집니다. * 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. * 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 * 전부 제거하려고 합니다. * 단,제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. * * 배열 arr의 크기 : 1,000,000 이하의 자연수 * 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수 * * arr answer * [1,1,3,3,0,1,1] [1,3,0,1] * [4,4,4,3,3] [4,3] */ 123456789101112131415161718192021222324252627import java.util.*;public class Pr..
최대공약수와 최소공배수 /* 최대공약수와 최소공배수 * 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, * solution을 완성해 보세요. * 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. * 예를 들어 두 수 3, 12의 최대공약수는 3, * 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. * * n m return * 3 12 [3, 12] * 2 5 [1, 10] */ 1234567891011121314151617181920212223242526272829public class programmer_1_36 { static int a1 = 3; static int b1 = 12; static int a2 = 2; static int b2 ..
직사각형 별찍기 /* 직사각형 별찍기 * 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. * 별(*) 문자를 이용해 가로의 길이가 n, * 세로의 길이가 m인 직사각형 형태를 출력해보세요. */ 12345678910111213141516import java.util.Scanner;public class programmer_1_35 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); for(int i = 0; i
행렬의 덧셈 /* 행렬의 덧셈 * 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, * 같은 열의 값을 서로 더한 결과가 됩니다. 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]] */ 12345678910111213141516171819202122public class programmer_1_34 { static int[][] a1 = {{1,2}, {2,3}}; static int[][] b1..
부족한 금액 계산하기 /* 부족한 금액 계산하기 * 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. * 이 놀이기구의 원래 이용료는 price원 인데, * 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. * 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. * 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 * 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. * 단, 금액이 부족하지 않으면 0을 return 하세요. * * 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 * 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, ..