프로그래머스 코딩테스트 기초 문제 풀기
1. 문자열을 정수로 변환하기
class Solution {
public int solution(String n_str) {
return Integer.parseInt(n_str);
}
}
2. 문자열 정수의 합
class Solution {
public int solution(String num_str) {
int answer = 0;
for (char s : num_str.toCharArray()) {
answer += s - '0';
}
return answer;
}
}
3. 정수 부분
class Solution {
public int solution(double flo) {
return (int)flo;
}
}
4. 뒤에서 5등까지
import java.util.Arrays;
class Solution {
public int[] solution(int[] num_list) {
Arrays.sort(num_list);
return Arrays.copyOfRange(num_list, 0, 5);
}
}
5. 배열의 길이에 따라 다른 연산하기
class Solution {
public int[] solution(int[] arr, int n) {
if(arr.length%2!=0){
for(int i=0;i<arr.length;i+=2){
arr[i]+=n;
}
}else{
for(int i=1;i<arr.length;i+=2){
arr[i]+=n;
}
}
return arr;
}
}
6. 배열 비교하기
class Solution {
public int solution(int[] arr1, int[] arr2) {
if(arr1.length<arr2.length){
return -1;
}else if(arr1.length>arr2.length){
return 1;
}else{
int sum1=0;
int sum2=0;
for (int a:arr1 ){
sum1+=a;
}
for (int a:arr2 ){
sum2+=a;
}
if(sum1<sum2){
return -1;
}else if(sum1>sum2){
return 1;
}else{
return 0;
}
}
}
}
7. 배열의 원소만큼 추가하기
import java.util.ArrayList;
class Solution {
public ArrayList<Integer> solution(int[] arr) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i : arr) {
for(int j = 0; j < i; j++) {
answer.add(i);
}
}
return answer;
}
}
8. rny_string
class Solution {
public String solution(String rny_string) {
return rny_string.replace("m", "rn");
}
}
9. 문자열 바꿔서 찾기
class Solution {
public int solution(String myString, String pat) {
String answer = "";
for(char c : myString.toCharArray()) {
if(c == 'A') answer += 'B';
else answer += 'A';
}
return answer.contains(pat) ? 1 : 0;
}
}
10. 공백으로 구분하기 2
class Solution {
public String[] solution(String my_string) {
return my_string.trim().split("\\s+");
}
}
11. 특정한 문자를 대문자로 바꾸기
class Solution {
public String solution(String my_string, String alp) {
return my_string.replace(alp, alp.toUpperCase());
}
}
12. A 강조하기
class Solution {
public String solution(String myString) {
return myString.toLowerCase().replace("a", "A");
}
}
13. 배열에서 문자열 대소문자 변환하기
class Solution {
public String[] solution(String[] strArr) {
for(int i = 0; i < strArr.length; i++) {
strArr[i] = i % 2 == 0 ? strArr[i].toLowerCase() : strArr[i].toUpperCase();
}
return strArr;
}
}
14. 소문자로 바꾸기
class Solution {
public String solution(String myString) {
return myString.toLowerCase();
}
}
15. 대문자로 바꾸기
class Solution {
public String solution(String myString) {
return myString.toUpperCase();
}
}
16. 원하는 문자열 찾기
class Solution {
public int solution(String myString, String pat) {
return myString.toLowerCase().contains(pat.toLowerCase()) ? 1 : 0;
}
}
17. 길이에 따른 연산
class Solution {
public int solution(int[] num_list) {
int answer = 0;
if(num_list.length >= 11) {
for(int i:num_list) {
answer += i;
}
}
else {
answer = 1;
for(int i:num_list) {
answer *= i;
}
}
return answer;
}
}
18. 조건에 맞게 수열 변환하기 1
class Solution {
public int[] solution(int[] arr) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] >= 50 && arr[i] % 2 == 0) arr[i] = arr[i] / 2;
else if(arr[i] < 50 && arr[i] % 2 != 0) arr[i] = arr[i] * 2;
}
return arr;
}
}
19. n보다 커질 때까지 더하기
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for(int num:numbers) {
answer += num;
if(answer > n) return answer;
}
return answer;
}
}
20. 할 일 목록
import java.util.ArrayList;
class Solution {
public ArrayList<String> solution(String[] todo_list, boolean[] finished) {
ArrayList<String> answer = new ArrayList<>();
for(int i = 0 ; i < todo_list.length ; i++) {
if(!finished[i]) answer.add(todo_list[i]);
}
return answer;
}
}
21. 5명씩
import java.util.ArrayList;
class Solution {
public ArrayList<String> solution(String[] names) {
ArrayList<String> answer = new ArrayList<>();
for(int i = 0; i < names.length; i+=5) {
answer.add(names[i]);
}
return answer;
}
}
22. 홀수 vs 짝수
class Solution {
public int solution(int[] num_list) {
int a = 0;
int b = 0;
for (int i = 0; i < num_list.length; i++) {
if (i % 2 == 0) {
a += num_list[i];
} else {
b += num_list[i];
}
}
return a > b ? a : b;
}
}
23. n개 간격의 원소들
import java.util.ArrayList;
class Solution {
public ArrayList<Integer> solution(int[] num_list, int n) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i = 0 ; i < num_list.length ; i+=n) {
answer.add(num_list[i]);
}
return answer;
}
}
24. n 번째 원소까지
import java.util.ArrayList;
class Solution {
public ArrayList<Integer> solution(int[] num_list, int n) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i = 0; i < n ; i++) {
answer.add(num_list[i]);
}
return answer;
}
}
25. 순서 바꾸기
class Solution {
public int[] solution(int[] num_list, int n) {
int[] answer = new int[num_list.length];
for(int i = n, j = 0; i < num_list.length; i++, j++){
answer[j] = num_list[i];
}
for(int i = 0, j = num_list.length - n; j < num_list.length; i++, j++) {
answer[j] = num_list[i];
}
return answer;
}
}
26. n 번째 원소부터
import java.util.Arrays;
class Solution {
public int[] solution(int[] num_list, int n) {
return Arrays.copyOfRange(num_list, n-1, num_list.length);
}
}
27. 첫 번째로 나오는 음수
class Solution {
public int solution(int[] num_list) {
for(int i = 0; i < num_list.length; i++) {
if(num_list[i] < 0) return i;
}
return -1;
}
}
28. 가까운 1 찾기
class Solution {
public int solution(int[] arr, int idx) {
int answer = 0;
for(int i = idx; i < arr.length; i++) {
if(arr[i] == 1) return i;
}
return -1;
}
}
29. 카운트 다운
class Solution {
public int[] solution(int start_num, int end_num) {
int[] answer = new int[start_num - end_num + 1];
int j = 0;
for(int i = start_num; i > end_num - 1; i--) {
answer[j++] = i;
}
return answer;
}
}
30. 배열 만들기 1
class Solution {
public int[] solution(int n, int k) {
int[] answer = new int[n / k];
int j = 0;
for(int i = 1; i <= n; i++) {
if(i % k == 0) {
answer[j++] = i;
}
}
return answer;
}
}
31. 접두사인지 확인하기
class Solution {
public int solution(String my_string, String is_prefix) {
int answer = 0;
if(my_string.length() < is_prefix.length()) return 0;
if(is_prefix.equals(my_string.substring(0, is_prefix.length()))) return 1;
return answer;
}
}
32. 문자열의 앞의 n글자
class Solution {
public String solution(String my_string, int n) {
return my_string.substring(0, n);
}
}
33. 접미사인지 확인하기
class Solution {
public int solution(String my_string, String is_suffix) {
int answer = 0;
if(my_string.length() < is_suffix.length()) return 0;
if(is_suffix.equals(my_string.substring(my_string.length() - is_suffix.length()))) return 1;
return answer;
}
}
34. 접미사 배열
import java.util.Arrays;
class Solution {
public String[] solution(String my_string) {
String[] answer = new String[my_string.length()];
int j = 0;
for(int i = 1; i <= my_string.length(); i++) {
answer[j++] = my_string.substring(my_string.length() - i);
}
Arrays.sort(answer);
return answer;
}
}
35. 문자열의 뒤의 n글자
class Solution {
public String solution(String my_string, int n) {
return my_string.substring(my_string.length() - n);
}
}
36. 부분 문자열 이어 붙여 문자열 만들기
class Solution {
public String solution(String[] my_strings, int[][] parts) {
String answer = "";
for(int i = 0; i < my_strings.length; i++) {
answer += my_strings[i].substring(parts[i][0], parts[i][1]+1);
}
return answer;
}
}
37. 글자 이어 붙여 문자열 만들기
class Solution {
public String solution(String my_string, int[] index_list) {
String answer = "";
for(int idx : index_list) {
answer += my_string.split("")[idx];
}
return answer;
}
}
38. 콜라츠 수열 만들기
import java.util.ArrayList;
class Solution {
public ArrayList<Integer> solution(int n) {
ArrayList<Integer> answer = new ArrayList<>();
answer.add(n);
while(n != 1) {
if(n % 2 == 0) {
n /= 2;
} else {
n = 3 * n + 1;
}
answer.add(n);
}
return answer;
}
}
39. 카운트 업
class Solution {
public int[] solution(int start_num, int end_num) {
int[] answer = new int[end_num - start_num + 1];
int j = 0;
for(int i = start_num; i <= end_num; i++) {
answer[j++] = i;
}
return answer;
}
}
40. 수 조작하기 2
class Solution {
public String solution(int[] numLog) {
String answer = "";
for(int i = 0 ; i < numLog.length - 1 ; i++) {
int num = numLog[i+1] - numLog[i];
switch(num) {
case 1:
answer += "w";
break;
case -1:
answer += "s";
break;
case 10:
answer += "d";
break;
case -10:
answer += "a";
break;
default:
break;
}
}
return answer;
}
}
728x90
반응형
'LG 유플러스 유레카 SW > 스터디' 카테고리의 다른 글
[스터디] Java 도전 문제 3문제 (25.02.20) (0) | 2025.02.20 |
---|---|
[스터디] Java 프로그래머스 PCCE 기출 14문제 (25.02.19) (1) | 2025.02.19 |
[스터디] Java 프로그래머스 기초 24문제 & 머쓱이 획득 (25.02.18) (1) | 2025.02.18 |
[스터디] Java 프로그래머스 기초 30문제 (25.02.17) (0) | 2025.02.17 |
[스터디] Java 프로그래머스 기초 30문제 (25.02.14) (1) | 2025.02.14 |