프로그래밍/알고리즘 문제풀이
codewar: Where is THB?
noveljava
2019. 7. 2. 12:00
문제
- https://www.codewars.com/kata/where-is-thb
Codewars: Train your coding skills
Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.
www.codewars.com
문제 풀이
- input값으로 들어오는 문자열에서 't', 'h', 'b'를 찾아내는 문제입니다.
- 해당 문자를 제외하고, replace를 통하는 방법이 있고, 아니면 문자열에서 문자를 하나씩 검토를 하면서 우리가 찾고자하는 문자가 있다면 result String에 덧붙혀나가는 방식이 있을 수 있습니다. ( 저는 후자를 선택하였습니다. )
- initial 은 "" / null 도 포함이 되며, 이런 경우에는 "" 를 return 하도록 요구를 하고 있습니다.
- initial을 char형으로 변경하여 c로 한글자씩 받아와서 처리를 할 것입니다.
- 이때, t, b, h 와 T, B, H 와 같이 대소문자를 구분하여 처리를 해줘야합니다.
- 하나씩 다 추가를 한다면 소스의 길이가 길어지므로, Character.toLowerCase를 이용하여 비교를 합니다. ( 'T' -> 't' 로 변환이 되어 switch문에서 구분이 됩니다. )
public class THB {
public static String testing(String initial) {
//Don't goof it up!
if( null == initial ) {
initial = "";
}
String resultStr = "";
for( char c : initial.toCharArray() ) {
switch( Character.toLowerCase(c) ) {
case 't': resultStr += c; break;
case 'h': resultStr += c; break;
case 'b': resultStr += c; break;
}
}
return resultStr;
}
}