ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로그래머스 LV2 - 251022
    알고리즘 2025. 10. 22. 16:44

    LV2. JadenCase 문자열 만들기

    class Solution {
        public String solution(String s) {
            StringBuilder answer = new StringBuilder();
            
            String[] tmpStrList = s.split("");
            if (!Character.isDigit(tmpStrList[0].charAt(0))) {
                tmpStrList[0] = tmpStrList[0].toUpperCase();
            }
            
            for (int i=1; i<tmpStrList.length; i++) {
                if (" ".equals(tmpStrList[i-1])) {
                    tmpStrList[i] = tmpStrList[i].toUpperCase();
                } else {
                    tmpStrList[i] = tmpStrList[i].toLowerCase();
                }
            }
            
            for (String x : tmpStrList) {
                answer.append(x);
            }
            
            return answer.toString();
        }
    }

     

     

    LV2. 이진변환 반복하기

    class Solution {
        public int[] solution(String s) {
            int zeroCnt = 0;    // 제거할 0의 개수
            int transCnt = 0;   // 이진 변환 횟수
            int rmZeroNum = 0;
            
            while (s.length() > 1) {
                String tmpAnswer = "";
                
                // 1. 0 제거
                 for (String x : s.split("")) {
                    if ("0".equals(x)) {
                        zeroCnt += 1;
                    } else {
                        tmpAnswer += x;
                    }
                }
                
                // 2. 0 제거 후 길이
                rmZeroNum = tmpAnswer.length();
                tmpAnswer = "";
                
                // 3. 이진 변환
                while ((rmZeroNum/2) != 0) {
                    int value = rmZeroNum % 2;
                    rmZeroNum = rmZeroNum / 2;
                    tmpAnswer += String.valueOf(value);
                }
                tmpAnswer += "1";
                String newAnswer = "";
                
                for (int i = tmpAnswer.length(); i > 0; i--) {
                    newAnswer += tmpAnswer.substring(i-1, i);
                }
                transCnt += 1;
                s = newAnswer;
            }
            
            int[] answer = {transCnt, zeroCnt};
            return answer;
        }
    }

    다들 이진변환 메서드 사용했네...

     

     

    LV2. 숫자의 표현

    class Solution {
        public int solution(int n) {
            int sum = 0;
            int answer = 0;
            
            // 중간값 
            int midVal = n / 2;
            
            for (int i=1; i<=midVal; i++) {
                sum = 0;
                for (int j=i; j<n; j++) {
                    sum += j;
                    if (sum == n) {
                        answer += 1;
                    } else if (sum > n) {
                        break;
                    }
                }
            }
            return answer+1;
        }
    }
    728x90

    '알고리즘' 카테고리의 다른 글

    프로그래머스 LV2 - 251024  (0) 2025.10.24
    프로그래머스 LV2 - 251023  (0) 2025.10.23
    프로그래머스 LV2 - 251014  (0) 2025.10.14
    section7.10  (0) 2025.09.04
    section7.9  (0) 2025.09.03
Designed by Tistory.