목차📕
▸ JadenCase 문자열 만들기
▸ 이진 변환 반복하기
출처: 프로그래머스 코딩테스트 연습 > 연습문제 > JadenCase 문자열 만들기
[오답 코드]
class Solution {
public String solution(String s) {
String answer = "";
String str = s.toLowerCase();
String[] words = str.split(" ");
for(int i = 0; i < words.length; i++){
String tmp = "";
char[] ch = words[i].toCharArray();
ch[0] = Character.toUpperCase(ch[0]);
for(int j = 0; j < words[i].length();j++){
tmp += ch[j];
}
words[i] = tmp;
}
answer = String.join(" ", words);
return answer;
}
}
[수정 코드]
class Solution {
public String solution(String s) {
String answer = "";
String str = s.toLowerCase();
String[] words = str.split(" ");
for(int i = 0; i < words.length; i++){
if(words[i].length() == 0){
answer += " "; // 단어가 공백일 경우 반환값에 공백 더하기
}else{
answer += words[i].substring(0,1).toUpperCase();
answer += words[i].substring(1);
answer += " ";
}
}
//전달받은 문자열 마지막이 공백일 경우
if(s.substring(s.length() -1, s.length()).equals(" ")) return answer;
//전달받은 문자열 마지막이 공백이 아닐경우 마지막 공백은 제외해야함
return answer.substring(0, answer.length() - 1);
}
}
출처: 코딩테스트 연습 > 월간 코드 챌린지 시즌1 > 이진 변환 반복하기
class Solution {
public int[] solution(String s) {
int count = 0;
int zeroCount = 0;
while(!s.equals("1")){
StringBuilder result = new StringBuilder();
// 0 제외 문자열 만들기
for(int i = 0; i < s.length(); i++){
char ch = s.charAt(i);
if (ch != '0'){
result.append(ch);
} else{
zeroCount ++;
}
}
String output = result.toString();
int size = output.length();
//이진변환
String binary = Integer.toBinaryString(size);
s = binary;
count++;
}
int[] answer = new int[2];
answer[0] = count;
answer[1] = zeroCount;
return answer;
}
}
💡String binary = Integer.toBinaryString(바꾸고자 하는 숫자);