이지은님의 블로그
[JAVA] 코드카타 - (26)~(30) 본문
문제 (26) : 음양 더하기
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/76501
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
import java.util.Arrays;
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
for (int i = 0; i < absolutes.length; i++){
if(!signs[i]) absolutes[i] *= -1;
}
return Arrays.stream(absolutes).sum();
}
}
이방법도 좋지만 더 간단한 코드를 한번 공부후에 작성해보았다. 삼항연산자를 활용해보는 것도 좋을 것 같다.
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int result = 0;
for (int i = 0; i< absolutes.length; i++){
result += ((signs[i]) ? absolutes[i] : -1 * absolutes[i]);
}
return result;
}
}
문제 (27) : 핸드폰 번호 가리기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/12948
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
class Solution {
public String solution(String phone_number) {
StringBuilder sb = new StringBuilder(phone_number);
for (int i = 0; i< sb.length() - 4; i++){
sb.replace(i,i+1, "*");
}
return sb.toString();
}
}
문제 (28) : 없는 숫자 더하기
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/86051
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
int result = 0;
int temp = 0;
Arrays.sort(numbers);
for(int i = 0; i<numbers.length;i++){
if(numbers[i] != temp){
result += temp;
i--;
}
temp++;
}
while (temp <= 9){
result += temp;
temp++;
}
return result;
}
}
문제 (29) : 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12935
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr) {
int [] result = Arrays.stream(arr)
.filter(arrValue -> arrValue != Arrays.stream(arr).min().getAsInt()).toArray();
if (result.length == 0) return new int[] {-1};
return result;
}
}
문제 (30) : 가운데 글자 가져오기
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12903
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
class Solution {
public String solution(String s) {
return s.substring((s.length()-1)/2,(s.length()/2+1));
}
}
'알고리즘 공부 > [JAVA] 코드카타' 카테고리의 다른 글
[JAVA] 코드카타 - (36)~(40) (0) | 2025.01.14 |
---|---|
[JAVA] 코드카타 - (31)~(35) (0) | 2025.01.10 |
[JAVA] 코드카타 - (21)~(25) (0) | 2025.01.10 |
[JAVA] 코드카타 - (16)~(20) (0) | 2025.01.07 |
[JAVA] 코드카타 - (11)~(15) (0) | 2025.01.07 |