안녕하세요 질문입니다.
192
작성한 질문수 34
import java.util.*;
class Main {
public String solution(String str){
String answer;
char[] s=str.toCharArray();
int lt=0, rt=str.length()-1;
while(lt<rt){
if(!((s[lt])>=97 && (s[lt])<=122 )||(s[lt])>=65 && (s[lt])<=90 ) lt++;
else if(!((s[rt])>=65 && (s[rt])<=90 )||(s[rt])>=97 && (s[rt])<=122) rt--;
else{
char tmp=s[lt];
s[lt]=s[rt];
s[rt]=tmp;
lt++;
rt--;
}
}
answer=String.valueOf(s);
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner sc = new Scanner(System.in);
String str=sc.next();
System.out.println(T.solution(str));
}
}
//a#b!GE*T@S
아스키 코드 이용해서 풀려했는데 GE 부분이 안 바뀌더라구요. 혹시 뭐가 문제일까요.. G에서 바로 다음인 E로 넘어가던데..
답변 1
4
안녕하세요, 지나가던 학생입니다.
결론부터 말씀드리자면, if와 else if의 조건식이 잘못되었습니다.
문제에서 문자가 알파벳 대문자, 알파벳 소문자와 상관 없이 영어 알파벳인 경우에만 뒤집으라고 했기 때문에, 실제로 문자를 뒤집는 로직을 수행하는 else 조건으로 가기 위해선 if, else if에
'해당 문자가 알파벳 소문자도 알파벳 대문자도 아닌, 즉 특수문자인지를 판별'하는 조건식을 작성해야 합니다.
지정하신 조건을 보면,
if(!((s[lt])>=97 && (s[lt])<=122 )||(s[lt])>=65 && (s[lt])<=90 ) lt++;
-> s[lt]가 알파벳 소문자가 아닌(= 대문자 또는 특수문자) 또는 알파벳 대문자인 경우
else if(!((s[rt])>=65 && (s[rt])<=90 )||(s[rt])>=97 && (s[rt])<=122) rt--;
-> s[rt]가 알파벳 대문자가 아닌(= 소문자 또는 특수문자) 또는 알파벳 소문자인 경우
해당 조건 및 문자열이 'a#b!GE*T@S'인 경우, 루프를 진행하다가 s[lt]가 G, s[rt]가 E가 됐을 때
s[lt]가 알파벳 대문자이므로 위의 if 조건식을 만족하기 때문에 문자가 뒤집히지 않습니다.
따라서 각 문자가 알파벳 소문자도 아니고 알파벳 대문자도 아닌지를 확인하기 위한 조건식을 입력하면 다음과 같습니다.
!(s[lt] >= 97 && s[lt] <= 122) && !(s[lt] >= 65 && s[lt] <= 90)
((s[lt] 또는 s[rt]가) 알파벳 소문자가 아니다 그리고 알파벳 대문자가 아니다)
저도 막 공부하는 입장이라 허접하지만 도움이 되었으면 좋겠습니다.
봉우리 문제 질문입니다
0
70
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
57
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
65
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
62
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
77
2
6-7 강의에서
0
43
1
6-6. 장난꾸러기 질문 있습니다.
0
39
1
강의 수강후 코딩테스트
0
99
1
answer 변수 사용 여부
0
38
1
2중 for문
1
79
2
2-11. 임시반장정하기 (Runtime Error)
0
57
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
62
1
이런 풀이는 어떨까요
0
38
1
자바 스트림 방식의 효율성 질문 드립니다.
0
50
1
알고리즘 자료 구조들..
0
54
1
StringBuilder vs BufferdWriter
0
42
1
원더랜드(프림)
0
41
1
이런 코드는 어떤가요?
0
53
1
bfs 풀이
0
50
1
병합정렬
0
50
1
26강 임시반장 정하기에서 질문이 있습니다
0
36
1
이번달말에 완강 후 공부 방향
0
63
1
제가 이런 코테가 처음인데 공부방법을..ㅠ
1
100
1
20강 소수 에라토스테네스의 체 런타임 에러가 뜹니다
0
42
1





