일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 튜플
- 반복문
- 프로그래머스
- Java
- 점프와 순간이동
- HashMap
- 완전 탐색
- 2017 카카오 코드
- 완전탐색
- python
- fragment identifier
- 동적계획법
- 어려웠던 문제
- Dynamic Programming
- 규칙찾기
- 영문자 확인
- dfs
- 조합
- 후위 표기법
- pandas
- Stack
- 문자열
- 알고리즘
- 순열
- 보이어무어
- 에라토스테네스의 체
- 메뉴리뉴얼
- HashSet
- 최소공배수
- 쿼드압축 후 개수세기
- Today
- Total
csmoon1010의 SW 블로그
[200906] JadenCase 문자열 만들기 - 연습문제(level2) 본문
1. 문제 이해
programmers.co.kr/learn/courses/30/lessons/12951
- JadenCase : 모든 단어의 첫 문자가 대문자, 그 외의 알파벳은 소문자인 문자열
(단, 첫 문자가 영문이 아닐 때 이어지는 영문은 소문자)
- 문자열 s를 JadenCase로 바꾼 문자열 리턴
2. 전략
1) 문자열의 각 문자에 대해서 반복 ( target = s.charAt(i) )
- 공백인 경우 : count를 0으로 초기화 / 공백
- 알파벳인 경우( ASCII 코드 값 : 65~122 )
ⓐ 알파벳이 맞음
- count == 0 (첫 문자) : 대문자로 변경 toUpperCase()
- count > 0 : 소문자로 변경 toLowerCase()
ⓑ 알파벳이 아님
- 그대로
count는 1 증가함
2) 주의 사항(알고리즘 구현 시 놓쳤던 사항)
- 첫 문자만 대문자로 바꾼다고 JadenCase가 보장X : 그 외 알파벳이 대문자인 상태일 수 있음
- 공백을 제외한 문자만을 대상으로 하고 중간에 공백 넣기 X
: 단어들 사이에 공백이 2개 이상 OR 문장 앞뒤에 공백 존재 가능성
3. 참고 사항
1) 다른 풀이
(1) 글자 지정 : split("")로 모든 글자를 배열에 넣기
(2) 공백, 첫 글자 판별 : 숫자에 대한 toUpperCase(), toLowerCase()도 오류X → 내 풀이에서 불필요한 과정
- boolean 변수에 따라 toUpperCase(), toLowerCase() 적용 (공백일 때를 이용해 bool값 변화)
- 전부 toLowerCase() 적용 후 첫 문자에 대해서만 toUpperCase() 적용
(3) char 사용 : StringBuffer에 character append + Character.toUpperCase(), Character.toLowerCase() 이용
2) 기억해야될 것
- toUpperCase(), toLowerCase()
- 알고리즘 코딩 전 여러 예외 case 미리 생각하는 시간 가지기!
4. 코드
class Solution {
public String solution(String s) {
String answer = "";
int count = 0;
for(int i = 0; i < s.length(); i++){
char target = s.charAt(i);
String result = " ";
if(target == ' '){
count = 0;
result = " ";
}
else{
if((int)target >= 65 || (int)target <= 122){
if(count == 0) result = (Character.toString(target)).toUpperCase();
else result = (Character.toString(target)).toLowerCase();
}
else result = (Character.toString(target));
count++;
}
answer += result;
}
return answer;
}
}
'Coding Test > 프로그래머스' 카테고리의 다른 글
[200916] 모의고사 - 완전탐색(level1) (0) | 2020.09.16 |
---|---|
[200907] N개의 최소공배수 - 연습문제(level2) (0) | 2020.09.07 |
[200904] 행렬의 곱셈 - 연습문제(level2) (0) | 2020.09.05 |
[200904] 피보나치 수 - 연습문제(level2) (0) | 2020.09.04 |
[200901] 최솟값만들기 - 연습문제(level2) (0) | 2020.09.01 |