Develop/Algorithm
우테코 온보딩 - Problem 4
IJY
2022. 11. 9. 11:56
우테코 온보딩 - Problem 4 문제 풀이
문제 설명
어느 연못에 엄마 말씀을 좀처럼 듣지 않는 청개구리가 살고 있었다. 청개구리는 엄마가 하는 말은 무엇이든 반대로 말하였다.
엄마 말씀 word가 매개변수로 주어질 때, 아래 청개구리 사전을 참고해 반대로 변환하여 return 하도록 solution 메서드를 완성하라.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A |
제한사항
- word는 길이가 1 이상 1,000 이하인 문자열이다.
- 알파벳 외의 문자는 변환하지 않는다.
- 알파벳 대문자는 알파벳 대문자로, 알파벳 소문자는 알파벳 소문자로 변환한다.
문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크
풀이 코드
package onboarding;
public class Problem4 {
public static String solution(String word) {
StringBuilder result = new StringBuilder();
for(char c : word.toCharArray()) {
if(c == ' ') {
result.append(c);
} else if(c >= 'a' && c <= 'z') {
result.append((char)('z' - c + 'a'));
} else if(c >= 'A' && c <= 'Z'){
result.append((char)('Z' - c + 'A'));
}
}
return result.toString();
}
}
문제 해결 전략
이라 쓰고 문제를 보고서 어떻게 풀면 될까?에 대한 생각을 정리한 항목
해당 문제는 A는 Z, B는 Y 와 같이 정 반대로 바뀌는 것을 보고 아스키 코드를 사용하여 풀면 될 것 같다고 생각
아스키 코드를 이용하여 Z에서 입력 받은 문자의 차이를 구하여 'A'에 더하면 원하는 문자가 나오게 되므로 이를 StringBuilder 변수에 추가
하지만 공백(' ')의 경우엔 변환을 할 필요가 없으므로 그대로 StringBuilder 변수에 추가
변환 종료 후 StringBuilder 변수를 String으로 변환하여 반환
Map을 이용하여 해결하는 방법 : 방법 1, 방법 2
코드를 업로드해 둔 깃 허브