-
[올리브씨의 알고리즘 입문] Day 2 - 사칙연산, 조건문, 배열알고리즘/프로그래머스_입문 2024. 3. 25. 17:59
005. 두 수의 나눗셈
문제 설명.
정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
제한 사항.
0 < num1 ≤ 100
0 < num2 ≤ 100
입출력 예.
num1 num2 result 3 2 1500 7 3 2333 1 16 62
풀이.
class Solution { public int solution(int num1, int num2) { //변수 선언 int answer = 0; int minVal = 0; int maxVal = 100; //조건 만족 확인 boolean check = (minVal<=num1 && num1<=maxVal && minVal<=num2 && num2<=maxVal); if (check) double temp = 1000*num1/num2; answer = (int)temp; return answer; } }
006. 숫자 비교하기
문제 설명.
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
제한 사항.
0 ≤ num1 ≤ 10,000
0 ≤ num2 ≤ 10,000입출력 예.
num1 num2 result 2 3 -1 11 11 1 7 99 -1
풀이.
class Solution { public int solution(int num1, int num2) { //변수 선언 int answer = 0; int minVal = 0; int maxVal = 10000; //제한 조건 만족 여부 boolean var = (minVal<=num1 && num1<=maxVal && minVal<=num2 && num2<=maxVal); boolean var2 = num1-num2 == 0; //계산 if(var){ if(var2){ answer = 1; }else { answer = -1; } } return answer; } }
007. 분수의 덧셈
문제 설명.
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한 사항.
0 <numer1, denom1, numer2, denom2 < 1,000
입출력 예.
numer1 denom1 numer2 denom2 result 1 2 3 4 [5,4] 9 2 1 3 [29,6]
풀이.
class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { //변수선언 및 제약조건 int[] answer = new int[2]; int numerFinal = 0; int denomFinal = 0; int minval = 0; int maxVal = 1000; boolean var = (minval<numer1 && numer2<maxVal && minval<denom1 && denom1<maxVal && minval<numer2 && numer2<maxVal && minval<denom2 && denom2<maxVal); //계산 if(var) numerFinal = (denom2*numer1) + (denom1*numer2); denomFinal = denom2*denom1; int gcd= getGcd(numerFinal, denomFinal); //최대공약수 메서드 호출 answer[0] = numerFinal/gcd; answer[1] = denomFinal/gcd; return answer; }//end main //최대공약수 구하는 메서드 public static int getGcd(int a, int b) { if(a%b==0) { return b; } return getGcd(b, a%b); } }
008. 배열 두 배 만들기
문제 설명.
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
제한 사항.
-10,000 ≤ numbers의 원소 ≤ 10,000
1 ≤ numbers의 길이 ≤ 1,000입출력 예.
numbers result [1,2,3,4,5] [2,4,6,8,10] [1,2,100,-99,1,2,3] [2,4,100,-198,2,4,6]
풀이.
class Solution { public int[] solution(int[] numbers) { int arrLength = numbers.length; int[] answer = new int[arrLength]; //제한조건 int minLength = 1; int maxLength = 1000; int minNumbers = -10000; int maxNumbers = 10000; //제한조건(배열 길이) boolean var1 = (minLength<=arrLength && arrLength<=maxLength); for(int i=0; i<arrLength; i++){ //제한조건(값 크기) boolean var2 = (minNumbers<=numbers[i] && numbers[i]<=maxNumbers); if(var1&&var2){ answer[i] = numbers[i]*2; } } return answer; } }
출처 :https://school.programmers.co.kr/ 입문 알고리즘
https://school.programmers.co.kr/learn/challenges/beginner?order=acceptance_desc&languages=java
'알고리즘 > 프로그래머스_입문' 카테고리의 다른 글
[올리브씨의 알고리즘 입문] Day 6 - 문자열, 반복문, 출력, 배열, 조건문 (0) 2024.04.03 [올리브씨의 알고리즘 입문] Day 5 - 수학, 배열 (0) 2024.03.29 [올리브씨의 알고리즘 입문] Day 4 - 수학, 배열 (0) 2024.03.27 [올리브씨의 알고리즘 입문] Day 3 - 사칙연산, 배열, 수학 (2) 2024.03.26 [올리브씨의 알고리즘 입문] Day 1 - 사칙연산 (0) 2024.03.25