본문 바로가기

혼자 코딩 공부하기/프로그래머스 코딩테스트

231220 프로그래머스 코테 풀기

문자 개수 세기

class Solution {
    public int[] solution(String my_string) {
        int[] answer = new int[52]; // 알파벳 개수 = 26개, 대소문자 총 52개
        
        for(int i = 0; i < my_string.length(); i++) {
            if (Character.isUpperCase(my_string.charAt(i))) {
                answer[my_string.charAt(i) - 'A']++; // ASCII CODE 값 빼기
            } else {
                answer[my_string.charAt(i) - 'A' - 6]++; // 'A' 와 'a' 의 값은 32 차이, 6 을 더해 26 차이로 만듬
            }
        }
        return answer;
    }
}

 

7 의 개수 세기

class Solution {
    public int solution(int[] array) {
        int answer = 0;
        for(int i = 0; i < array.length; i++) {
            int temp = array[i];
            while (temp > 0) {
                if (temp % 10 == 7) {
                    answer++;
                }
                temp /= 10;
            }
        }
        return answer;
    }
}

 

잘라서 배열로 저장하기

class Solution {
    public String[] solution(String my_str, int n) {
        int i;
        if (my_str.length() % n != 0) {
            i = (my_str.length() / n) + 1;
        } else {
            i = my_str.length() / n;
        }
        String[] answer = new String[i];
        i = 0;
        for(int j = 0; j < my_str.length(); j+=n) {
            if (j + n < my_str.length()) {
                answer[i] = my_str.substring(j, j + n);
            } else {
                answer[i] = my_str.substring(j);
            }
            i++;
        }
        return answer;
    }
}

 

다음 큰 숫자

class Solution {
    public int solution(int n) {
        int answer = n;
        int bitcnt = Integer.bitCount(n);
        while (true) {
            answer++;
            if (bitcnt == Integer.bitCount(answer)) {
                return answer;
            }
        }
    }
}