JAVA를 잡아라!...

JAVA_[Lv.0] #16~20 (equals(), boolean) 본문

JAVA/JAVA_연습문제_프로그래머스

JAVA_[Lv.0] #16~20 (equals(), boolean)

onivv 2023. 11. 26. 00:01

문제 출처 : 프로그래머스

#16 n의 배수

문제 설명
정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.


입출력 예

num	n	result
98	2	1
34	3	0

 

소스코드 풀이

class Solution {
    public int solution(int num, int n) {
        int answer = 0;
        answer = num % n == 0 ? 1 : 0;
        return answer;
    }
}

 

#17 공배수

문제 설명
정수 number와 n, m이 주어집니다.

number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.


입출력 예

number	n	m	result
60	2	3	1
55	10	5	0

 

소스코드 풀이

class Solution {
    public int solution(int number, int n, int m) {
        int answer = 0;
        if(number % n == 0 && number % m == 0){
            answer = 1;
        }
        // answer 초기값이 0이므로 else사용이 필요하지 않음
        return answer;
    }
}

 

#18 홀짝에 따라 다른 값 반환하기

문제 설명
양의 정수 n이 매개변수로 주어질 때, 

n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고

n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.


입출력 예

n	result
7	16
10	220

 

소스코드 풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        if(n % 2 == 1){ //홀수가 참이면
	    	for (int i = 0; i < n; i++) { //n까지 반복해
		    	if((i+1) % 2 != 0) {    //홀수가 참이면
		    		answer += i + 1;    //홀수만 더해
		    	}
	    	}    
        }
        else{
            for (int i = 0; i < n; i++) {
		    	if((i+1) % 2 == 0) {
		    		answer += (i + 1) * (i + 1);
		    	}
	    	}    
        }
        return answer;
    }
}

 

#19 조건 문자

문제 설명
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.

두 수가 n과 m이라면
">", "=" : n >= m
"<", "=" : n <= m
">", "!" : n > m
"<", "!" : n < m
두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.


입출력 예

ineq	eq	n	m	result
"<"	"="	20	50	1
">"	"!"	41	78	0

 

소스코드 풀이

class Solution {
    public int solution(String ineq, String eq, int n, int m) {
        int answer = 0;
        //equals() : 문자열을 비교하는 메소드
        //자바는 ==로 문자열을 비교하지 못함
        if(ineq.equals("<")){
            if(eq.equals("=")){
                answer = n <= m? 1 : 0;
            }
            else{
                answer = n < m? 1 : 0;
            }
        }
        if(ineq.equals(">")){
            if(eq.equals("=")){
                answer = n >= m? 1 : 0;
            }
            else{
                answer = n > m? 1 : 0;
            }            
        }        
        return answer;
    }
}

 

#20 flag에 따라 다른 값 반환하기

문제 설명
두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때,

flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.

 

출력 예

a	b	flag	result
-4	7	true	3
-4	7	false	-11

 

소스코드 풀이

class Solution {
    public int solution(int a, int b, boolean flag) {
        int answer = 0;
        answer = flag ? a + b : a - b;	//boolean타입은 true/false를 저장
        return answer;
    }
}