코딩 기초 트레이닝 Day 11 with Java

2024. 5. 12. 20:17코딩테스트 리뷰(프로그래머스)/코딩 기초 트레이닝 with Java

문제.1 - 문자 개수 세기

https://school.programmers.co.kr/learn/courses/30/lessons/181902

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 갯수, 'B'의 갯수, ... , 'Z'의 갯수, 'a'의 갯수, 'b'의 갯수, ... , 'z'의 갯수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution함수를 작성해주세요.
class Solution {
    public int[] solution(String my_string) {
        int[] answer = new int[52];
        for( int i = 0; i < my_string.length(); i++ ) {
            if( 'A' <= my_string.charAt(i) && my_string.charAt(i) <= 'Z' ) {
                answer[ my_string.charAt(i) - 'A' ]++;
            } else if ( 'a' <= my_string.charAt(i) && my_string.charAt(i) <= 'z' ) {
                answer[ 26 + my_string.charAt(i) - 'a']++;
            }
        }
        return answer;
    }
}
class Solution {
    public int[] solution(String my_string) {
        int[] answer = new int[52];
        for( int i = 0; i < my_string.length(); i++) {
            switch(my_string.charAt(i)) {
                case 'A' : answer[0]++;
                    break;
                case 'B' : answer[1]++;
                    break;
                case 'C' : answer[2]++;
                    break;
                case 'D' : answer[3]++;
                    break;
                case 'E' : answer[4]++;
                    break;
                case 'F' : answer[5]++;
                    break;
                case 'G' : answer[6]++;
                    break;
                case 'H' : answer[7]++;
                    break;
                case 'I' : answer[8]++;
                    break;
                case 'J' : answer[9]++;
                    break;
                case 'K' : answer[10]++;
                    break;
                case 'L' : answer[11]++;
                    break;
                case 'M' : answer[12]++;
                    break;
                case 'N' : answer[13]++;
                    break;
                case 'O' : answer[14]++;
                    break;
                case 'P' : answer[15]++;
                    break;
                case 'Q' : answer[16]++;
                    break;
                case 'R' : answer[17]++;
                    break;
                case 'S' : answer[18]++;
                    break;
                case 'T' : answer[19]++;
                    break;
                case 'U' : answer[20]++;
                    break;
                case 'V' : answer[21]++;
                    break;
                case 'W' : answer[22]++;
                    break;
                case 'X' : answer[23]++;
                    break;
                case 'Y' : answer[24]++;
                    break;
                case 'Z' : answer[25]++;
                    break;    
                case 'a' : answer[26]++;
                    break;
                case 'b' : answer[27]++;
                    break;
                case 'c' : answer[28]++;
                    break;
                case 'd' : answer[29]++;
                    break;
                case 'e' : answer[30]++;
                    break;
                case 'f' : answer[31]++;
                    break;
                case 'g' : answer[32]++;
                    break;
                case 'h' : answer[33]++;
                    break;
                case 'i' : answer[34]++;
                    break;
                case 'j' : answer[35]++;
                    break;
                case 'k' : answer[36]++;
                    break;
                case 'l' : answer[37]++;
                    break;
                case 'm' : answer[38]++;
                    break;
                case 'n' : answer[39]++;
                    break;
                case 'o' : answer[40]++;
                    break;
                case 'p' : answer[41]++;
                    break;
                case 'q' : answer[42]++;
                    break;
                case 'r' : answer[43]++;
                    break;
                case 's' : answer[44]++;
                    break;
                case 't' : answer[45]++;
                    break;
                case 'u' : answer[46]++;
                    break;
                case 'v' : answer[47]++;
                    break;
                case 'w' : answer[48]++;
                    break;
                case 'x' : answer[49]++;
                    break;
                case 'y' : answer[50]++;
                    break;
                case 'z' : answer[51]++;
                    break;                
            }
        }
        return answer;
    }
}

 

 

 

문제.2 - 배열 만들기 1

https://school.programmers.co.kr/learn/courses/30/lessons/181901

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
정수 n과 k가 주어졌을 때, 1이상 n이하의 정수중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해주세요.
class Solution {
    public int[] solution(int n, int k) {
        int[] answer = new int[n/k];
        for( int i = 1; i <= answer.length; i++) answer[i-1] = i*k;
        return answer;
    }
}
class Solution {
    public int[] solution(int n, int k) {
        ArrayList<Integer> result = new ArrayList<>();
        for( int i = k; i <= n; i += k) result.add(i);
        int[] answer = new int[result.size()];
        for( int i = 0; i < result.size(); i++ ) answer[i] = result.get(i);
        return answer;
    }
}

 

 

 

문제.3 - 글자 지우기

https://school.programmers.co.kr/learn/courses/30/lessons/181900

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해주세요.
class Solution {
    public String solution(String my_string, int[] indices) {
        char[] result = my_string.toCharArray();
        for( int i : indices ) {
            result[i] = ' ';
        }
        return new String(result).replace(" ", "");
    }
}

 

 

 

문제.4 - 카운트 다운

https://school.programmers.co.kr/learn/courses/30/lessons/181899

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
정수 start_num 과 end_num가 주어질 때, start_num에서 end_num까지 1씩 감소하는 수들을 차례로 담은 리스트를 return 하도록 solution 함수를 완성해주세요.
class Solution {
    public int[] solution(int start, int end_num) {
        int[] answer = new int[start - end_num+1];
        for( int i = 0; i <=start - end_num ; i++) answer[i] = start-i;
        return answer;
    }
}

 

 

 

문제.5 - 가까운 1 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/181898

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0 입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 봔환하는 solution 함수를 완성해주세요.
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;
    }
}

 

 

 

참고 사항

https://kumgo1d.tistory.com/entry/Java-Char%ED%98%95-%EB%B0%B0%EC%97%B4%EA%B3%BC-String-%ED%81%B4%EB%9E%98%EC%8A%A4

 

[Java] Char형 배열과 String 클래스

안녕하세요 골드입니다. 오늘은 Char형 배열과 String 클래스에 관계에 대해서 글을 작성하겠습니다. 알고리즘을 풀다 보면 char형 배열을 String으로 혹은 그 반대에 경우로 형변환을 하는 경우가 굉

kumgo1d.tistory.com

https://velog.io/@yes_jihyeon/%EC%9E%90%EB%B0%94JAVA-%ED%8A%B9%EC%A0%95-%EB%AC%B8%EC%9E%90-%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B8%B0replace

 

[자바(JAVA)] 특정 문자 제거하기(replace)

[자바(JAVA)] 특정 문자 제거하기(replace)

velog.io

https://itprogramming119.tistory.com/entry/JAVA-40-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%97%90%EC%84%9C-%EB%B6%80%EB%B6%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94-delete-%EB%A9%94%EC%86%8C%EB%93%9C-StringBuffer-%ED%81%B4%EB%9E%98%EC%8A%A4

 

[JAVA] delete() - 문자열의 일부분을 제거하는 메소드

delete() 메소드 - 인덱스의 값을 기준으로 부분 문자열을 문자열에서 제거합니다. - 특정 위치의 문자열 중 문자 한 개만을 제거하고 싶을 때는 deleteCharAt() 메소드를 사용하면 됩니다. - delete(), dele

itprogramming119.tistory.com

 

 

 

느낀점

오늘은 2가지 코딩을 올려본 애들이 있는데 앞에 있는건 제가 풀고 나서 남들이 어떻게 풀었는지 보고 추가적으로 수정해본 스타일, 밑에 있는건 제가 그대로 코딩한건데, 하나만 있는 애들은 제가 직접 다 한것이라 하나만 있습니다.

 

진짜 코딩 테스트 하나 풀고 남들이 푼거 보면 세상은 참 대단한 사람들이 많은듯합니다.

이렇게 작은것에서 느끼는게 많아요..

 

다들 화이팅!