머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요. 이전의 피자 나눠 먹기 문제와 유사한 것 같았다. 간단한 연산으로 계산 후 서비스 값만 추가해주면 될 것 같았다. 먼저 양꼬치와 음료수 값을 구하고, int answer = 0; int drink = 0; // 음료수 서비스 개수 // 양꼬치 값 합산 answer += n * 12000; // 음료수 값 합산 answer += k * 2000; 만약 양꼬치가 10인분이 넘어가면, drink값을 조정해서 그만큼 ..
첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. Try 1) - 주어진 테스트케이스 2개는 통과했으나 제출 시 나머지 테스트는 통과하지 못하였다. - 너무 표면적인 문제만 해결하려 했던 것 같다. >> 테스트케이스에 맞춰 코드를 설계하려 했음 int[] answer = {0, 0}; int temp; // 공통 분모 int marking; // Case 1. 첫번째 분수의 분모가 두번째 분수의 분모보다 클때 if(num1 > num2){ if(num1 % num2 !=..
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요. 문자열 뒤집기는 첫번째 인덱스의 문자와 끝 인덱스의 문자를 바꾸고 인덱스를 바꾼 후 또 그 인덱스에서의 바꾸기가 이루어지면 되는 것이다. lt 라는 변수와 rt라는 변수를 두어 해결하려했지만, 첫번째인덱스는 반복문에서 'i'라는 변수로 쉽게 접근이 가능하기에 rt변수만 두었다. int rt = my_string.length() - 1; rt는 주어진 my_string의 끝문자를 표시한다. .length() - 1 처음에는 Try 1) StringIndexOutOfBoundsException 오류가 발생하였다. 문자열의 인덱스를 참조하는 과정에서 범위 지정이 ..
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요. 간단히 이중 반복문을 통해서 별을 출력하는 문제인 것 같았다. 첫째줄로부터 줄이 증가할수록 별의 개수도 증가하면 되는 것이다. i와 j로 이중 반복문을 잡고 j는 i까지 반복해주면 될것 같았다. print()문으로 별을 공백없이 옆에 붙여서 반복 출력해주면 된다. for(int i = 1; i
머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 앞선 피자 나눠 먹기 문제들과는 달리 이번에는 잘라내는 조각 수를 입력받아 처리한다. 그 원하는 조각 수는 slice에 담기고, 사람의 수 n이 주어지고, 이 n명의 사람이 최소 한 조각 이상 먹기 위해서 필요한 최소 피자 판 수를 구하는 것이다. Try 1) 모든 테스트를 통과하지 못함 public static int solution(int slice, int n) { int answer = 1; fo..
머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 피자 나눠 먹기(1)에서 바뀐 점은 피자 한 판이 6조각으로 나뉜다는 점과 주문한 피자를 모두 남기지 않고 먹어야한다는 것, 모두 같은 수의 피자를 먹어야한다는 것이다. 최소한 필요한 피자 판 수가 더 증가될 것 같았다. 만약 사람이 10명인 경우로 가정했을 때 // 10명일때는 한 판 = 6명만 먹고 4명 굶음 // 두 판 = 10명 다 먹지만 2명이 더 먹음 // 세 판 = 10명 다 먹지만 2명이 덜 먹음 // 네 판 = 10명..
머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. 피자를 일곱조각으로 나눈다는 것은 고정 조건이다. 이제 나눠먹을 사람의 수가 주어지는데, 모든 사람이 한 조각 이상씩 먹기 위해서는 최소 한 판(7조각)이상이어야하며, 만약 1명이 주어진다면 최소 한 조각을 먹기위해서 한 판(1조각) (+6조각 남음)이 필요하다. 사람의 수에서 7조각 수(한 판)를 나누면 최소 먹을 수 있는 판 수가 나온다. 사람의 수는 n % 7로 남은 조각 수를 갱신해준다. 이 n의 나머지가 0이면 사람의 수에 딱 맞게 피자 판 수가 나누어 떨어진다는 것이다. 만약 ..
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요. 배열의 원소를 for반복문을 통해 모두 더하고 그 배열의 길이로 나눠 평균값을 구하면 되는 간단한 문제였다. 이 문제를 풀때 입력받는 방식에서 차별점을 두고 싶었다. 프로그래머스의 자체 입력방식이 아닌, BufferedReader 와 StringTokenizer를 사용해보았다. hasMoreTokens로 사용자로부터 입력된 원소들을 마무리 짓는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer..
정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요. 간단한 문제로 보였지만, 형변환을 하는 문법적인 형식이 다소 헷갈렸다. float(num1 / num2)로 한다거나 int(float(num1 / num2)) 로 한다거나, Float, Int 등으로 바꿔써본다거나 모두 문법적으로 어긋나는 요소였다. ( ) 괄호 안 넣는 것을 인지하지 못한채 생긴 불상사였다. 추가로 주어진 int answer = 부분을 double answer = 처럼 임의로 변경해 입력시키다가 return 부분에서 (int)answer 로 반환해주어도 된다는 사실을 깨달을 수 있었다. 주어진 코드 안에서만 해결하려..