코딩테스트

프로그래머스 코딩테스트(배열의 원소만큼 추가하기, A 강조하기, 인덱스 바꾸기)

SOME코딩 2023. 5. 5. 22:57

<배열의 원소만큼 추가하기>

문제 설명
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.

 

풀이

class Solution {
    public int[] solution(int[] arr) {
        int sum = 0;
        for(int i:arr){
            sum+=i;
        }
        int[] answer = new int[sum];
        int n = 0;
        for(int j=0;j<arr.length;j++){
            for(int k=0;k<arr[j];k++){
                answer[n+k] = arr[j];
            }
            n+=arr[j];
        }
        return answer;
    }
}

 

다른 사람 풀이

class Solution {
    public int[] solution(int[] arr) {
        int len = 0;
        for(int i : arr) len += i;
        int[] answer = new int[len];
        int idx = 0;

        for(int i = 0; i < arr.length; i++)
            for(int j = 0; j < arr[i]; j++)
                answer[idx++] = arr[i]; 
        return answer;
    }
}

 

<A 강조하기>

문제 설명
문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.

 

풀이

class Solution {
    public String solution(String myString) {
        String answer = "";
        for(int i=0;i<myString.length();i++){
            if(myString.charAt(i) == 'a'){
                answer += 'A';
            } else if('B'<=myString.charAt(i)&&myString.charAt(i)<='Z'){
                answer += (myString.charAt(i)+"").toLowerCase();
            } else {
                answer += myString.charAt(i);
            }
        }
        return answer;
    }
}

 

다른 사람 풀이

class Solution {

    public String solution(String myString) {
        myString = myString.toLowerCase();
        myString = myString.replace('a', 'A');

        return myString;
    }
}

 

<인덱스 바꾸기>

문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

풀이

class Solution {
    public String solution(String my_string, int num1, int num2) {
        String answer = "";
        for(int i=0;i<my_string.length();i++){
            if(i==num1){
                answer += my_string.charAt(num2);
            } else if(i==num2){
                answer += my_string.charAt(num1);
            } else {
                answer += my_string.charAt(i);
            }
        }
        return answer;
    }
}

 

다른 사람 풀이

class Solution {
    public String solution(String my_string, int num1, int num2) {
        String answer = "";

        char[] ch = my_string.toCharArray();

        ch[num1] = my_string.charAt(num2);
        ch[num2] = my_string.charAt(num1);

        answer = String.valueOf(ch);
        return answer;
    }
}