자바 88

[프로그래머스, 입문] 피자 나눠 먹기(1)

문제 설명머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.해결법1명이라면 피자 한 판이 필요하다. (1조각)2명이라도 피자 한 판이면 충분하다. (2조각)7명이라면 피자 한 판으로 충분하다. (7조각)8명이라면 피자 두 판이 필요하다. (8조각, 첫 번째 판에서 7조각 + 두 번째 판에서 1조각)따라서 필요한 피자의 수는 n을 7로 나눈 몫에 1을 더한 값이 된다. (만약 나머지가 있다면)abstract class Pizza { private int n; abstract int getPizza(int n);}class Solu..

[프로그래머스, 입문] 배열 두배 만들기

목차#배열 두배 만들기정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.추상 클래스 추상 클래스는 객체로 만들 수 없는 클래스이다. 따라서 서브 클래스에 상속한 후 객체를 만들어 사용한다.인터페이스나 추상 메서드의 개념을 이해하기는 쉽지 않다. 추상메소드와 관련된 정보는 많이 있지만.. 이것이 어디에 쓰기위해 존재하는지에 대해서 명확하게 정리되어 있지 않으면 이미 만들어져 있는 추상메소드를 코딩은 하지만 직접 클래스를 만들면서 추상 메소드가 가진 목적을 발휘하는 그런 클래스를 디자인하고 만들어 쓰는데까지는 가지 못하였다.  그러면 이러한 추상 클래스를 왜 사용하는가?우리가 사용하는 운영체제를 보면 ..

[프로그래머스, LV.0] 분수의 덧셈

목차#1 분수의 덧셈첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 이번에는 객체지향의 개념을 제대로 이해하기 위해 클래스를 도입해보았다.개념기약 분수란?기약 분수는 분자와 분모의 최대 공약수가 1인 분수를 말한다. 즉, 더 이상 약분할 수 없는 상태의 분수이다. 예를 들어, 분수 2/4는 1/2로 약분될 수 있기 때문에 기약 분수가 아니다. 그러나 1/2는 더 이상 약분할 수 없으므로 기약 분수이다. 최대 공약수(GCD)란?최대 공약수는 두 수의 공약수 중 가..

[프로그래머스 LV.0] 배열의 원소 삭제하기

목차 #1 배열의 원소 삭제하기 문제 설명 정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 100 1 ≤ arr의 원소 ≤ 1,000 arr의 원소는 모두 서로 다릅니다. 1 ≤ delete_list의 길이 ≤ 100 1 ≤ delete_list의 원소 ≤ 1,000 delete_list의 원소는 모두 서로 다릅니다. 입출력 예 arr delete_list result [293, 1000, 395, 678, 94] [94, 777, 104, 1000, 1, 12] [293, 395, 678]..

[프로그래머스 LV.0] 문자열로 변환

목차 #1 문자열로 변환 문제 설명 정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 10000 입출력 예 n result 123 "123" 2573 "2573" 입출력 예 설명 입출력 예 #1 123을 문자열로 변환한 "123"을 return합니다. 입출력 예 #2 2573을 문자열로 변환한 "2573"을 return합니다. #2 알고리즘 및 코드 class Solution { public String solution(int n) { return Integer.toString(n); } }

[프로그래머스 LV.0] 두 수의 합

목차 #1 두 수의 합 문제 설명 0 이상의 두 정수가 문자열 a, b로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ a의 길이 ≤ 100,000 1 ≤ b의 길이 ≤ 100,000 a와 b는 숫자로만 이루어져 있습니다. a와 b는 정수 0이 아니라면 0으로 시작하지 않습니다. 입출력 예 a b result "582" "734" "1316" "18446744073709551615" "287346502836570928366" "305793246910280479981" "0" "0" 입출력 예 설명 입출력 예 #1 예제 1번의 a, b는 각각 582, 734이고 582 + 734 = 1316입니다. 따라서 "1316"을 return 합니다...

[프로그래머스 LV.0] 0 떼기

목차 #1 0 떼기 문제 설명 정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ n_str ≤ 10 n_str이 "0"으로만 이루어진 경우는 없습니다. 입출력 예 n_str result "0010" "10" "854020" "854020" 입출력 예 설명 입출력 예 #1 "0010"의 가장 왼쪽에 연속으로 등장하는 "0"을 모두 제거하면 "10"이 됩니다. 입출력 예 #2 "854020"는 가장 왼쪽에 0이 없으므로 "854020"을 return합니다. #2 알고리즘 및 코드 class Solution { public String solution(String n_str) {..

[프로그래머스 LV.0] 문자열을 정수로 변환하기

목차 #1 문자열을 정수로 변환하기 문제 설명 숫자로만 이루어진 문자열 n_str이 주어질 때, n_str을 정수로 변환하여 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n_str ≤ 5 n_str은 0부터 9까지의 정수 문자로만 이루어져 있습니다. 입출력 예 n_str result "10" 10 "8542" 8542 입출력 예 설명 입출력 예 #1 "10"을 정수로 바꾸면 10입니다. 입출력 예 #2 "8542"를 정수로 바꾸면 8542입니다. #2 알고리즘 및 코드 class Solution { public int solution(String n_str) { return Integer.parseInt(n_str); } }

[프로그래머스 LV.0] 문자열 정수의 합

목차 #1 문자열 정수의 합 문제 설명 한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요. 제한사항 3 ≤ num_str ≤ 100 입출력 예 num_str result "123456789" 45 "1000000" 1 입출력 예 설명 입출력 예 #1 문자열 안의 모든 숫자를 더하면 45가 됩니다. 입출력 예 #2 문자열 안의 모든 숫자를 더하면 1이 됩니다. #2 알고리즘 및 코드 class Solution { public int solution(String num_str) { int sum = 0; for(int i = 0; i < num_str.length(); i++) sum += num_str.charAt(i) - ..

[프로그래머스 LV.0] 정수 부분

목차 #1 정수 부분 문제 설명 실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ flo ≤ 100 입출력 예 flo result 1.42 1 69.32 69 입출력 예 설명 입출력 예 #1 1.42의 정수 부분은 1입니다. 입출력 예 #2 69.32의 정수 부분은 69입니다. #2 알고리즘 및 코드 class Solution { public int solution(double flo) { return (int)flo; } }