나머지 구하기
📋 문제 설명
정수 `num1`, `num2`가 매개변수로 주어질 때, `num1`를 `num2`로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
0 < `num1` ≤ 100
0 < `num2` ≤ 100
class Solution {
public int solution(int num1, int num2) {
return num1 % num2;
}
}
숫자 비교하기
📋 문제 설명
정수 `num1`과 `num2`가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
0 ≤ `num1` ≤ 10,000
0 ≤ `num2` ≤ 10,000
class Solution {
public int solution(int num1, int num2) {
return num1 == num2 ? 1 : -1;
}
}
✍🏻 삼항연산자
조건식 ? 참일 때 값 : 거짓일 때 값
두 수의 차 구하기
📋 문제 설명
정수 `num1`과 `num2`가 주어질 때, `num1`에서 `num2`를 뺀 값을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
-50,000 ≤ `num1` ≤ 50,000
-50,000 ≤ `num2` ≤ 50,000
class Solution {
public int solution(int num1, int num2) {
return num1 - num2;
}
}
나이 출력
📋 문제 설명
머쓱이는 선생님이 몇년도에 태어났는지 궁금해졌습니다. 2022년 기준 선생님의 나이 `age`가 주어질 때, 선생님의 출생 연도를 return 하는 solution 함수를 완성해주세요.
📌 제한사항
0 < `age` ≤ 120
나이는 태어난 연도에 1살이며 매년 1월 1일마다 1살씩 증가합니다.
class Solution {
public int solution(int age) {
return 2022 - age + 1;
}
}
몫 구하기
📋 문제 설명
정수 `num1`, `num2`가 매개변수로 주어질 때, `num1`을 `num2`로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
0 < `num1` ≤ 100
0 < `num2` ≤ 100
class Solution {
public int solution(int num1, int num2) {
return num1 / num2;
}
}
두 수의 곱 구하기
📋 문제 설명
정수 `num1`, `num2`가 매개변수로 주어집니다. `num1`과 `num2`를 곱한 값을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
0 ≤ `num1` ≤ 100
0 ≤ `num2` ≤ 100
class Solution {
public int solution(int num1, int num2) {
return num1 * num2;
}
}
두 수의 합 구하기
📋 문제 설명
정수 `num1`과 `num2`가 주어질 때, `num1`과 `num2`의 합을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
-50,000 ≤ `num1` ≤ 50,000
-50,000 ≤ `num2` ≤ 50,000
class Solution {
public int solution(int num1, int num2) {
return num1 + num2;
}
}
두 수의 나눗셈
📋 문제 설명
정수 `num1`과 `num2`가 매개변수로 주어질 때, `num1`을 `num2`로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
0 < `num1` ≤ 100
0 < `num2` ≤ 100
class Solution {
public int solution(int num1, int num2) {
return (int) (((double) num1 / num2) * 1000);
}
}
각도기
📋 문제 설명
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 `angle`이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return 하도록 solution 함수를 완성해주세요.
- 예각: 0 < `angle` < 90
- 직각: `angle` = 90
- 둔각: 90 < `angle` < 180
- 평각: `angle` = 180
📌 제한사항
0 ≤ `angle` ≤ 180
`angle`은 정수입니다.
class Solution {
public int solution(int angle) {
if (0 < angle && angle < 90) return 1;
else if (angle == 90) return 2;
else if (90 < angle && angle < 180) return 3;
else return 4;
}
}
양꼬치
📋 문제 설명
머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 `n`과 `k`가 매개변수로 주어졌을 때, 양꼬치 `n`인분과 음료수 `k`개를 먹었다면 총 얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
📌 제한사항
0 < `n` < 1,000
`n` / 10 ≤ `k` ≤ 1,000
서비스로 받은 음료수는 모두 마십니다.
class Solution {
public int solution(int n, int k) {
int service = n / 10;
return 12000 * n + 2000 * (k - service);
}
}
짝수의 합
📋 문제 설명
정수 `n`이 주어질 때, `n` 이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
📌 제한사항
0 < `n` < 1,000
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 0; i <= n; i += 2) {
answer += i;
}
return answer;
}
}
배열 원소의 길이
📋 문제 설명
문자열 배열 `strlist`가 매개변수로 주어집니다. `strlist` 각 원소의 길이를 담은 배열을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
1 ≤ `strlist` 원소의 길이 < 100
`strlist`는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.
class Solution {
public int[] solution(String[] strlist) {
int[] answer = new int[strlist.length];
for (int i = 0; i < strlist.length; i++) {
answer[i] = strlist[i].length();
}
return answer;
}
}
배열의 유사도
📋 문제 설명
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 `s1`과 `s2`가 주어질 때 같은 원소의 개수를 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
1 ≤ `s1`, `s2`의 길이 ≤ 100
1 ≤ `s1`, `s2`의 원소의 길이 ≤ 10
`s1`과 `s2`의 원소는 알파벳 소문자로만 이루어져 있습니다.
`s1`과 `s2`는 각각 중복된 원소를 갖지 않습니다.
class Solution {
public int solution(String[] s1, String[] s2) {
Set<String> set1 = new HashSet<>(Arrays.asList(s1));
Set<String> set2 = new HashSet<>(Arrays.asList(s2));
set1.retainAll(set2);
return set1.size();
}
}
교집합으로 풀고 싶었다
✍🏻 Set
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
System.out.println(set.size()); // 3
System.out.println(set.contains(2)); // true
set.remove(2);
System.out.println(set.contains(2)); // false
System.out.println(set.isEmpty()); // false
set.clear();
System.out.println(set.isEmpty()); // true
// 배열 → Set 변환
Set<String> set1 = new HashSet<>(Arrays.asList("a", "b", "c"));
Set<String> set2 = new HashSet<>(Arrays.asList("b", "c", "d"));
Set<String> inter = new HashSet<>(set1);
inter.retainAll(set2); // 교집합
Set<String> union = new HashSet<>(set1);
union.addAll(set2); // 합집합
Set<String> diff = new HashSet<>(set1);
diff.removeAll(set2); // 차집합
문자열 안에 문자열
📋 문제 설명
문자열 `str1`, `str2`가 매개변수로 주어집니다. `str1` 안에 `str2`가 있다면 1을, 없다면 2를 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
1 ≤ `str1`의 길이 ≤ 100
1 ≤ `str2`의 길이 ≤ 100
문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
class Solution {
public int solution(String str1, String str2) {
return str1.contains(str2) ? 1 : 2;
}
}
✍🏻 String
String str = "Hello, world!";
// 길이, 문자 추출
System.out.println(str.length()); // 13
System.out.println(str.charAt(1)); // e
// 문자열 자르기
System.out.println(str.substring(1, 4)); // ell
// 검색
System.out.println(str.indexOf("o")); // 4
System.out.println(str.lastIndexOf("o")); // 8
System.out.println(str.contains("ll")); // true
// 비교
System.out.println(str.equals("Hello, world!")); // true
System.out.println(str.equalsIgnoreCase("hello, World!")); // true
// 대소문자 변환
System.out.println(str.toUpperCase()); // HELLO, WORLD!
System.out.println(str.toLowerCase()); // hello, world!
// 공백 제거
System.out.println(" Hello, world! ".trim()); // Hello, world!
// 치환
System.out.println(str.replace("l", "")); // Heo, word!
// 반복
System.out.println(str.repeat(3)); // Hello, world!Hello, world!Hello, world!
// 분리
str.split(" "); // ["Hello,", "world!"]
// 뒤집기 📌 StringBuiler 사용
String reversed = new StringBuilder(str).reverse().toString();
배열의 평균값
📋 문제 설명
정수 배열 `numbers`가 매개변수로 주어집니다. `numbers`의 원소의 평균값을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
0 ≤ `numbers`의 원소 ≤ 1,000
1 ≤ `numbers`의 길이 ≤ 100
정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
class Solution {
public double solution(int[] numbers) {
double sum = 0;
for (int n : numbers) {
sum += n;
}
return sum / numbers.length;
}
}
배열 뒤집기
📋 문제 설명
정수가 들어있는 배열 `num_list`가 매개변수로 주어집니다. `num_list`의 원소의 순서를 거꾸로 뒤집은 배열을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
1 ≤ `num_list`의 길이 < 1,000
0 ≤ `num_list`의 원소 ≤ 1,000
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[num_list.length];
for (int i = 0; i < num_list.length; i++) {
answer[i] = num_list[num_list.length - 1 - i];
}
return answer;
}
}
제곱수 판별하기
📋 문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 `n`이 매개변수로 주어질 때, `n`이 제곱수라면 1을 아니라면 2를 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
1 ≤ `n` ≤ 1,000,000
class Solution {
public int solution(int n) {
int sqrt = (int) Math.sqrt(n);
return sqrt * sqrt == n ? 1 : 2;
}
}
✍🏻 Math 클래스
// 별도 임포트 없이 바로 쓸 수 있어
System.out.println(Math.abs(-5)); // 5
System.out.println(Math.max(3, 7)); // 7
System.out.println(Math.min(3, 7)); // 3
System.out.println(Math.pow(2, 3)); // 8.0
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.round(2.5)); // 3
System.out.println(Math.floor(2.7)); // 2.0
System.out.println(Math.ceil(2.1)); // 3.0
짝수 홀수 개수
📋 문제 설명
정수가 담긴 리스트 `num_list`가 주어질 때, `num_list`의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
📌 제한사항
1 ≤ `num_list`의 길이 < 100
0 ≤ `num_list`의 원소 ≤ 1,000
class Solution {
public int[] solution(int[] num_list) {
int even = 0;
int odd = 0;
for (int n : num_list) {
if (n % 2 == 0) even++;
else odd++;
}
int[] answer = {even, odd};
return answer;
}
}
특정 문자 제거하기
📋 문제 설명
문자열 `my_string`과 문자 `letter`이 매개변수로 주어집니다. `my_string`에서 `letter`를 제거한 문자열을 return 하도록 solution 함수를 완성해주세요.
📌 제한사항
1 ≤ `my_string`의 길이 < 100
`letter`은 길이가 1인 영문자입니다.
`my_string`과 `letter`은 알파벳 대소문자로 이루어져 있습니다.
대문자와 소문자를 구분합니다.
class Solution {
public String solution(String my_string, String letter) {
return my_string.replace(letter, "");
}
}
피자 나눠 먹기 (3)
📋 문제 설명
머쓱이네 피자 가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 `slice`와 피자를 먹는 사람 수 `n`이 매개변수로 주어질 때, `n`명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
📌 제한사항
2 ≤ `slice` ≤ 10
1 ≤ `n` ≤ 100
class Solution {
public int solution(int slice, int n) {
return (int) Math.ceil((double) n / slice);
}
}
'자바' 카테고리의 다른 글
프로그래머스 코딩 기초 트레이닝 🔥 조건문 / 반복문 (0) | 2025.05.01 |
---|---|
프로그래머스 코딩 기초 트레이닝 🔥 출력 / 연산 / 문자열 (0) | 2025.04.30 |
프로그래머스 코딩테스트 입문 60% (0) | 2025.04.27 |
프로그래머스 코딩테스트 입문 40% (0) | 2025.04.27 |
자바 입출력 정리 (0) | 2025.04.25 |