Algorithm/문제
5. 특정 문자 뒤집기
챛채
2023. 5. 16. 12:39
- 처음 출발에 lt, rt 둘 다 알파벳이므로 서로 교환을 시킨다. 그리고 동시에 증가시킨다.
- 다음 lt, rt 위치에는 특수문자가 있으므로 교환 없이 증가시킨다.
- if(lt==특수문자) //if lt가 알파벳이 아닌가? ->특수문자냐
else if (rt==특수문자) //rt가 특수문자이면 하나 감소
else() //lt, rt 둘 다 특수문자가 아니면 교환
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer;
char[] s = str.toCharArray();
int lt=0, rt=str.length()-1; //인덱스 번호가 0부터 시작이므로 rt는 -1 해줘야함
while(lt<rt) {
if(!Character.isAlphabetic(s[lt]))//s의 lt가 알파벳이 아니면 참
lt++;
else if(!Character.isAlphabetic(s[rt]))
rt --;
else{
char tmp=s[lt];
s[lt]=s[rt];
s[rt]=tmp;
lt++;
rt--;
}
}
answer = String.valueOf(s); //s라는 기본 배열을 String화 시켜줌
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
4. 단어 뒤집기 문제와 연관