-
프로그래머스 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