1. 문자열을 정수로 변환하기
class Solution {
public int solution(String n_str) {
return Integer.parseInt(n_str);
}
}
문자열을 정수로 바꾸는 2가지 방법
1. Integer.parseInt( )
2. Interger.valueOf( )
2. 문자열 정수의 합
class Solution {
public int solution(String num_str) {
int answer = 0;
String[] new_str= num_str.split("");
for(int i = 0; i < new_str.length; i++) {
answer+= Integer.parseInt(new_str[i]);
}
return answer;
}
}
String[ ] -> 문자열 배열 의미
- String[] arr = {"apple", "banana", "cherry"}
String -> 단일 문자열 의미
- String str = "apple";
3. 정수 부분
class Solution {
public int solution(double flo) {
return (int) flo;
}
}
자바는 실수 타입인 double을 정수 타입인 int로 강제 형변한 할대 (int)로 적어준다. 이를 명시적형변환이라 한다. 실수 값을 정수로 변환할때 소수점이 버려진다.
그러면 만약에 String을 int로 변환할 경우? 파싱한다.
String str = "123";
int num = Integer.parseInt(str);
4. 뒤에서 5등까지
import java.util.Arrays;
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[5];
Arrays.sort(num_list);
for(int i = 0; i < answer.length; i++) {
answer[i] = num_list[i];
}
return answer;
}
}
변수를 선언할때는 반드시 초기화를 해야함으로 int[ ] answer = new int[5] 를 작성한것
5. 배열의 길이에 따라 다른 계산하기
class Solution {
public int[] solution(int[] arr, int n) {
int[] answer = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
if (arr.length % 2 == 0 && i % 2 == 1) {
answer[i] = arr[i] + n;
} else if (arr.length % 2 != 0 && i % 2 == 0) {
answer[i] = arr[i] + n;
} else {
answer[i] = arr[i];
}
}
return answer;
}
}
6. 배열비교하기
class Solution {
public int solution(int[] arr1, int[] arr2) {
int sum1 = 0;
int sum2 = 0;
for (int i = 0; i < arr1.length; i++) {
sum1 += arr1[i];
}
for (int j = 0; j < arr2.length; j++) {
sum2 += arr2[j];
}
if (arr1.length > arr2.length) {
return 1;
} else if (arr1.length < arr2.length) {
return -1;
} else {
if (sum1 > sum2) {
return 1;
} else if (sum1 < sum2) {
return -1;
} else {
return 0;
}
}
}
}
7. 배열의 원소만큼 추가하기
import java.util.*;
class Solution {
public List solution(int[] arr) {
List<Integer> answer = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i]; j++) {
answer.add(arr[i]);
}
}
return answer;
}
}
8. rny_string
class Solution {
public String solution(String rny_string) {
String answer = rny_string.replace("m", "rn");
return answer;
}
}
9. 문자열 바꿔서 찾기
class Solution {
public int solution(String myString, String pat) {
String replaceString = myString.replace("A", "X").replace("B", "A").replace("X", "B");
if(replaceString.contains(pat)) {
return 1;
} else {
return 0;
}
}
}
10. 공백으로 구분하기2
class Solution {
public String[] solution(String my_string) {
return my_string.trim().split("\\s+");
}
}
trim -> 문자열의 앞과 뒤에 있는 공백 제
split"\\s+) -> 문자열을 하나 이상의 연속된 공백 문자로 분리
\\s -> 공백 문자의미
+ -> 그 문자가 하나 이상 연속으로 존재할 때 이를 하나의 구분자로 처리
즉, 여러개의 공백, 탭, 줄바꿈 등이 연속적으로 있어도 하나의 공백으로 처리
그러면 split(",")과 뭔 차이?
쉼표로 구분된 문자열을 나누고 싶을 때 사용
11. 특정한 문자를 대문자로 바꾸기
class Solution {
public String solution(String my_string, String alp) {
String answer = my_string.replace(alp, alp.toUpperCase());
return answer;
}
}
12. A 강조하기
class Solution {
public String solution(String myString) {
myString = myString.toLowerCase();
myString = myString.replaceAll("a", "A");
return myString;
}
}
13. 배열에서 문자열 대소문자 변환하기
class Solution {
public String[] solution(String[] strArr) {
String[] answer = new String[strArr.length];
for(int i=0; i<strArr.length; i++){
if(i%2==0){
answer[i] = strArr[i].toLowerCase();
}else{
answer[i] = strArr[i].toUpperCase();
}
}
return answer;
}
}
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) {
if (myString.toLowerCase().contains(pat.toLowerCase())) {
return 1;
} else {
return 0;
}
}
}
17. 길이에 따른 연산
class Solution {
public int solution(int[] num_list) {
int answer = 0;
if (num_list.length >= 11) {
for (int i = 0; i < num_list.length; i++) {
answer += num_list[i];
}
} else {
answer = 1;
for (int i = 0; i < num_list.length; i++) {
answer *= num_list[i];
}
}
return answer;
}
}
18. 조건에 맞게 수열 변환하기 1
class Solution {
public int[] solution(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] < 50) {
if (arr[i] % 2 == 1) {
arr[i] = arr[i] * 2;
}
} else if(arr[i] % 2 == 0 && arr[i] >= 50){
arr[i] = arr[i] / 2;
}
}
return arr;
}
}
19. n보다 커질 때까지 더하기
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for (int i = 0; i < numbers.length; i++) {
answer += numbers[i];
if (answer > n) {
return answer;
}
}
return answer;
}
}
20. 할 일 목록
import java.util.ArrayList;
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
ArrayList<String> result = new ArrayList<>();
for (int i = 0; i < todo_list.length; i++) {
if (!finished[i]) {
result.add(todo_list[i]);
}
}
return result.toArray(new String[0]);
}
}
21. 5명씩
import java.util.ArrayList;
class Solution {
public String[] solution(String[] names) {
ArrayList<String> emptyArray = new ArrayList<>();
String[] answer = {};
for(int i = 0; i < names.length; i+=5) {
emptyArray.add(names[i]);
}
return emptyArray;
}
}
ArrayList<string>은 String[] 로 자동 변환x
toArray(new String[0])을 사용해서 String[]로 변수
22. 홀수vs 짝수
class Solution {
public int solution(int[] num_list) {
int oddAnswer = 0;
int evenAnswer = 0;
for(int i = 0; i < num_list.length; i++) {
if(i % 2 == 1) {
oddAnswer+=num_list[i];
} else {
evenAnswer+=num_list[i];
}
}
if(oddAnswer < evenAnswer) {
return evenAnswer;
} else {
return oddAnswer;
}
}
}
i로 나누자
23. n개 간격의 원소들
import java.util.*;
class Solution {
public int[] solution(int[] num_list, int n) {
List<Integer> answer = new ArrayList<>();
for(int i = 0; i < num_list.length; i += n) {
answer.add(num_list[i]);
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}
24. n 번째 원소까지
import java.util.ArrayList;
class Solution {
public int[] solution(int[] num_list, int n) {
ArrayList<Integer> newArray = new ArrayList<>();
int[] answer = {};
for(int i = 0; i < n; i++) {
newArray.add(num_list[i]);
}
return newArray.stream().mapToInt(Integer::intValue).toArray();
}
}
25. 순서 바꾸기
import java.util.ArrayList;
class Solution {
public int[] solution(int[] num_list, int n) {
ArrayList<Integer> answer = new ArrayList<>();
for (int i = n; i < num_list.length; i++) {
answer.add(num_list[i]);
}
for (int i = 0; i < n; i++) {
answer.add(num_list[i]);
}
int[] result = new int[answer.size()];
for (int i = 0; i < answer.size(); i++) {
result[i] = answer.get(i);
}
return result;
}
}
26. n 번째 원소부터
import java.util.*;
class Solution {
public List solution(int[] num_list, int n) {
List<Integer> answer = new ArrayList<>();
for (int i = n-1; i < num_list.length; i++) {
answer.add(num_list[i]);
}
return answer;
}
}
27. 첫 번째로 나오는 음수
class Solution {
public int solution(int[] num_list) {
int answer = 0;
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) {
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];
for (int i = 0; i < answer.length; i++) {
answer[i] = start_num--;
}
return answer;
}
}
30. 배열 만들기 1
import java.util.ArrayList;
class Solution {
public int[] solution(int n, int k) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i = k; i <= n; i+=k ) {
answer.add(i);
}
// ArrayList를 int[]로 변환
int[] result = new int[answer.size()]; // 배열 생성
for(int i =0; i < answer.size(); i++) {
result[i]=answer.get(i); // 요소 복사
}
return result;
}
}
ArrayList를 int[]로 변환 필슈!
int[] result = new int[answer.size()]; // 배열 생성
for(int i =0; i < answer.size(); i++) {
result[i]=answer.get(i); // 요소 복사
}
31. 접두사인지 확인하기
class Solution {
public int solution(String my_string, String is_prefix) {
if( my_string.startsWith(is_prefix)) {
return 1;
} else {
return 0;
}
}
}
접두사란? 접사의 하나로 어기 앞에 붙어서 새로운 단어를 만드는 형태소
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_prefix) {
if( my_string.endsWith(is_prefix)) {
return 1;
} else {
return 0;
}
}
}
34. 접미사 배열
import java.util.Arrays;
class Solution {
public String[] solution(String my_string) {
String[] answer = new String[my_string.length()];
for (int i = 0; i < my_string.length(); i++) {
answer[i] = my_string.substring(i);
}
Arrays.sort(answer);
return answer;
}
}
35. 문자열의 뒤의 n글자
class Solution {
public String solution(String my_string, int n) {
String answer = "";
answer=my_string.substring(my_string.length()-n);
return answer;
}
}
36. 부분 문자열 이어 붙여 문자열 만들기
class Solution {
public String solution(String[] my_strings, int[][] parts) {
StringBuilder result = new StringBuilder();
for(int i = 0; i < my_strings.length; i++) {
int s = parts[i][0];
int e = parts[i][1];
result.append(my_strings[i].substring(s, e + 1));
}
return result.toString();
}
}
37. 글자 이어 붙여 문자열 만들기
class Solution {
public String solution(String my_string, int[] index_list) {
String answer = "";
for(int i=0; i<index_list.length; i++){
answer += my_string.charAt(index_list[i]);
}
return answer;
}
}
38. 콜라츠 수열 만들기
import java.util.*;
class Solution {
public int[] solution(int n) {
ArrayList<Integer> answerArray = new ArrayList<>();
while(n!=1){
if(n%2==0){
answerArray.add(n);
n /= 2;
}else{
answerArray.add(n);
n = 3 * n + 1;
}
}
answerArray.add(1);
int[] answer = new int[answerArray.size()];
for(int i=0; i<answerArray.size(); i++){
answer[i] = answerArray.get(i);
}
return answer;
}
}
39. 카운트 업
class Solution {
public int[] solution(int start_num, int end_num) {
int[] answer = new int[end_num - start_num + 1 ];
for (int i = 0; i < answer.length; i++) {
answer[i] += start_num + i;
}
return answer;
}
}
40. 수 조작하기 2
class Solution {
public String solution(int[] numLog) {
String answer = "";
for (int i = 0; i < numLog.length - 1; i++) {
int j = numLog[i+1] - numLog[i];
if (j == 1) {
answer += "w";
} else if (j == -1) {
answer += "s";
} else if (j == 10) {
answer += "d";
} else if (j == -10) {
answer += "a";
}
}
return answer;
}
}
자바스크립트가 그립다..🤯😭
'💡 URECA > ⌨️ 프로그래머스' 카테고리의 다른 글
[URECA] 프로그래머스 | 기초 | 자바 <- 업로드 중 (1) | 2025.02.19 |
---|---|
[URECA] 프로그래머스 | 기초 | Java <- 업로드 중 (0) | 2025.02.18 |
[URECA] 프로그래머스 | 입문 | JS (0) | 2025.02.17 |
[URECA] 프로그래머스 | 30문제 | 자바 <- 업로드 중 (-9) (0) | 2025.02.14 |
[URECA] 프로그래머스 | 입문 | JS (0) | 2025.02.13 |