Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

이지은님의 블로그

[JAVA] 코드카타 - (26)~(30) 본문

알고리즘 공부/[JAVA] 코드카타

[JAVA] 코드카타 - (26)~(30)

queenriwon3 2025. 1. 10. 11:40

문제 (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