양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
class Solution {
public int solution(int n) {
int answer = 0;
if(n%2 == 0) {
for(int i=n; i>0;i-=2) {
answer+=i*i;
}
} else {
for(int i=n; i>0;i-=2) {
answer+=i;
}
}
return answer;
}
}
입력받은 n이 짝수인지, 홀수인지를 if문에서 판별 후 for문으로 결과값을 생성하였다.
for문에서는 짝수일때는 짝수만이, 홀수일때는 홀수만이 필요하기때문에 n부터 2씩 감소하도록 하였으며, 짝수일경우는 제곱의 합이 필요하기 때문에 answer에 해당 값의 제곱값을 누적하였다.
i * i == Math.pow(i,2)
두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.
class Solution {
public int solution(int a, int b, boolean flag) {
return flag ? a + b : a - b;
}
}
삼항연산자를 사용해서 만약 flag 값이 true라면 :를 기준으로 왼쪽의 값이 반환되고 false라면 :를 기준으로 오른쪽 값이 반환되도록 작성하였다.
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
두 수가 n과 m이라면
두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(String ineq, String eq, int n, int m) {
if (ineq.equals(">")) {
if (eq.equals("=")) {
return n >= m ? 1 : 0;
} else if (eq.equals("!")) {
return n > m ? 1 : 0;
}
} else if (ineq.equals("<")) {
if (eq.equals("=")) {
return n <= m ? 1 : 0;
} else if (eq.equals("!")) {
return n < m ? 1 : 0;
}
}
return 0;
}
}
효율적으로 처리할 수 있는 방법이 뭘까 고민을 하다 결국 if~else문을 사용하였다.
ineq값을 기준으로 >인지 <인지 구분을 하고, 만약 두가지다 해당하지 않은다면 맨 마지막 줄에서 0을 리턴하도록 작성하였다.
ineq값으로 구분한 후, eq에따라서 알맞은 연산을 시행한 후 연산의 결과가 true라면 1을 false라면 0을 반환하도록 작성하였다.
정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int number, int n, int m) {
int answer = 0;
if(number % n == 0 && number % m == 0){
answer = 1;
}else{
answer = 0;
}
return answer;
}
}
number가 n의 배수이면서 m의 배수라는 조건은 number을 n과 m으로 나누었을때의 나머지가 0 이라는 점을 이용했다. 또한 두조건다 만족해야하므로 and 연산을 시행하였다.
정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int num, int n) {
int answer = 0;
if(num % n == 0) {
answer = 1;
}
return answer;
}
}
number가 n의 배수인가는 number를 n으로 나눴을때 나머지가 0인가를 확인하는 것이라고 생각하였다. if문으로 조건을 확인하고 answer 값을 조건에 맞게 할당한 후 반환하는 코드를 작성하였다.
오늘의 알고리즘도 완료!!