
프로그래머스에서 낸 코딩 문제에 대한 해답이 들어있습니다.
열람 시 주의해주세요.

오늘의 공부가 온다. 코테런 4일차. 정답 코드는 아래 깃허브에 정리해뒀다.
n의 배수
정수 num과 n이 매개 변수로 주어질 때,
num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.
문제 코드
class Solution {
public int solution(int num, int n) {
int answer = 0;
return answer;
}
}
문제 해설
저번에 했던 짝수 / 홀수 문제와 비슷한 나누기 연산에 대한 문제다. num을 n 으로 나누었을 때 나머지가 0이면 배수, 아니면 배수가 아니므로 0을 return하면 된다.
정답
class Solution {
public int solution(int num, int n) {
int answer = 0;
if(num % n == 0) {
answer = 1;
} else {
answer = 0;
}
return answer;
}
}
공배수
정수 number와 n, m이 주어집니다.
number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
문제 코드
class Solution {
public int solution(int number, int n, int m) {
int answer = 0;
return answer;
}
}
문제 해설
마찬가지로 나머지 연산이지만, 여기서는 조건 두개를 만족해야 한다. 즉 논리연산자 AND를 사용할 수 있느냐가 핵심이다. number % n == 0 && number % m == 0 으로 처리를 하면 된다.
정답
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;
}
}
홀짝에 따라 다른 값 반환하기
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고,
n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
문제 코드
class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
문제 해설
나머지 연산에 이어서 이번에는 for문 순회가 가능한지를 확인하고 있고, 거기서 증감식을 어떻게 사용할 수 있는지를 보고 있다. 보통 i++는 1씩 늘어나지만, i+=2등을 사용하면 2씩 늘어난다. 0에서 시작하면 0, 2 4 6 8, 1에서 시작하면 1 3 5 7로 늘어나게 된다. 조건식은 i<=n(n이하이므로)로 처리한다.
문제에서 짝수라면 제곱을 하라 했으니 곱하기 연산을 사용하여 i * i을 사용하면 된다.
정답
class Solution {
public int solution(int n) {
int answer = 0;
if(n % 2 == 0){ //짝수일 경우
for(int i = 0; i<=n; i+=2){
answer += i * i;
}
} else { //홀수일 경우
for(int i = 1; i<=n; i+=2){
answer += i;
}
}
return answer;
}
}
조건 문자열
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
두 수가 n과 m이라면
">", "=" : n >= m
"<", "=" : n <= m
">", "!" : n > m
"<", "!" : 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) {
int answer = 0;
return answer;
}
}
문제 해설
equals로 String 비교가 가능한지에 대한 문제이다. 즉, if(ineq.equals("<"))라면 < 연산이 되도록 처리하는 것이다.
방법은 여러가지 있겠지만 제일 정석적인 방법으로 했다. 이 문제는 줄여 쓰는 정답도 여러가지 있다(boolean 필드를 추가하는 등).
정답
class Solution {
public int solution(String ineq, String eq, int n, int m) {
int answer = 0;
if(ineq.equals("<")){
if(eq.equals("=")){
if(n<=m){
answer = 1;
}
} else {
if(n<m){
answer = 1;
}
}
} else {
if(eq.equals("=")){
if(n>=m){
answer = 1;
}
} else {
if(n>m){
answer = 1;
}
}
}
return answer;
}
}
flag에 따라 다른 값 반환하기
문제 코드
class Solution {
public int solution(int a, int b, boolean flag) {
int answer = 0;
return answer;
}
}
문제 해설
flag가 boolean 타입이고 boolean 타입이 뭐냐에 대한 테스트를 하는 것이다. boolean 타입은 true 또는 false 값을 가지므로 if문에 들어가는 순간 그 자체가 논리 반환이 된다(true, false). 그러므로 if문에 if(flag)처럼 사용하면 된다.
정답
class Solution {
public int solution(int a, int b, boolean flag) {
int answer = 0;
if(flag) {
answer = a + b;
} else {
answer = a - b;
}
return answer;
}
}'코테런 > 코딩 기초 트레이닝(완주)' 카테고리의 다른 글
| [코딩 테스트 RUN] 코딩 기초 트레이닝 6일차 (0) | 2026.02.11 |
|---|---|
| [코딩 테스트 RUN] 코딩 기초 트레이닝 5일차 (0) | 2026.02.10 |
| [코딩 테스트 RUN] 코딩 기초 트레이닝 3일차 (0) | 2026.02.08 |
| [코딩 테스트 RUN] 코딩 기초 트레이닝 2일차 (0) | 2026.02.07 |
| [코딩 테스트 RUN] 코딩 기초 트레이닝 1일차 (0) | 2026.02.06 |
