개발 언어 입문/Java 입문
프로그래머스 [Lv. 1] 이상한 문자 만들기 {언어 : Java}
스위태니
2024. 6. 18. 20:21
728x90
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12930
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답 코드
class Solution {
public String solution(String s) {
int lenS = s.length();
StringBuilder sb = new StringBuilder();
boolean isOdd = true;
for (int i = 0; i < lenS; i++) {
// current character
char cc = s.charAt(i);
// transformed character
String tc = "";
if (cc == ' ') {
isOdd = true;
sb.append(" ");
continue;
}
if (isOdd) {
cc = Character.toUpperCase(cc);
} else {
cc = Character.toLowerCase(cc);
}
isOdd = !isOdd;
tc = String.valueOf(cc);
sb.append(tc);
}
String answer = sb.toString();
return answer;
}
}
풀이 방법
- StringBuilder를 만든다.
- ' ' 빈 칸 일 때 isOdd를 초기화 한다.
- 공백을 기준으로 단어의 첫 번째를 홀수 번째로 인식해야 하기 때문
- isOdd에 따라 대문자 또는 소문자로 바꾼 뒤 sb에 append해준다.
- 마지막으로 sb를 String으로 변환하면 끝!
느낀점
- 어떻게 풀어야 할지는 아는데 아직 대소문자 바꾸는 것은 어려우며, 자바 뿐만아니라 파이썬, 자바스크립트 다 대소문자 변환함수를 까먹은 것 같다.
- 추가로 아스키코드 변환도 자주 까먹는 함수중 하나이므로 다음에 정리를 해야 할 것 같다.
728x90