개발놀이터
1-5. 특정 문자 뒤집기 본문
package string.flipspecificcharacter15.my;
import java.util.Scanner;
public class Main {
/**
* 반은 맞추고 반은 못맞춘 문제... 정말 아쉽다...
*
* 키포인트
* 1. '특수문자' 면 lt 는 ++ rt 는 -- 해야한다.
* 2. if / else if / else 문으로 하나로 묶어야 한다.
*
* if (lt = 특수문자) {
* lt++;
* }
* else if (rt = 특수문자) {
* rt--;
* }
* else (둘다 알파벳인 경우) {
* 둘이 바꿔
* }
*
* 1번은 생각했는데 2번을 생각 못했다... 진짜 개바보보
*/
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String input = kb.next();
System.out.println(solution(input));
}
private static String solution(String input) {
String answer = "";
int lt = 0, rt = input.length() - 1;
char[] c = input.toCharArray();
while (lt < rt) {
if (!(c[lt] >= 65 && c[lt] <= 90) && !(c[lt] >= 97 && c[lt] <= 122)) {
lt++;
}
else if (!(c[rt] >= 65 && c[rt] <= 90) && !(c[rt] >= 97 && c[rt] <= 122)) {
rt--;
}
else {
char tmp = c[lt];
c[lt] = c[rt];
c[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(c);
return answer;
}
}
전의 문제에서 활용했던 수동 뒤집기인 lt 와 rt 를 도입하여 정답에 근접하게 풀어냈으나 조건식을 합쳐야 한다는 느낌만 잡아내었고 else if 문을 생각하지 못했다... 정말 아쉬운 문제
정답에 정말 코앞까지 근접했으나 풀지 못해서 많이 아쉬움이 남는 문제
'기타 > 코딩테스트' 카테고리의 다른 글
1-7. 회문 문자열 (0) | 2023.02.09 |
---|---|
1-6. 중복된 문자 제거 (0) | 2023.02.07 |
1-4. 단어 바꾸기 (0) | 2023.02.07 |
1-3. 문장 속 단어찾기 (0) | 2023.02.07 |
1-2. 대소문자 변환 (0) | 2023.02.07 |