인프런 커뮤니티 질문&답변
<특정문자 뒤집기>함수 질문
작성
·
317
0
while(lt<rt){
if(!Character.isAlphabetic(s[lt])lt++;
else if(!Character.isAlphabetic(s([rt])rt--;
else{
char tmp=s[lt];
s[lt]=s[rt];
s[rt]=tmp;
lt++;
rt--;
}
}
안녕하세요 강사님
특정문자 뒤집기 문제에서 핵심 함수가 이해가 되지않아 질문드립니다.
제가 궁금한 점은 while문을 돌때 lt값과 rt값이 동시에 검증되는 것인지 아니면 while문 1번에 값이 하나만 검증되는 것인지 궁금합니다.
입력 값이 a#b!GE*T@S 일때 lt<rt이기때문에 lt는 알파벳이 아니기 때문에 1증가해서 두번째를 가리킵니다.
이 때 if문을 수행했기 때문에 while문을 빠져나오는 것 아닌가요? 3개중 하나를 만족하면 나오는 걸로 알고 있습니다.
아니면 그 다음 else if 문을 실행하여 rt값을 검증하고 1감소시키고 else문까지 끝까지 검증하고 while문 검증이 완료되는 것인지 궁금합니다.
답변 부탁드리겠습니다. 감사합니다.
퀴즈
대소문자를 구분하지 않고 문자열 내 특정 문자의 총 개수를 세려면, 어떤 방법이 가장 효율적일까요?
문자열을 반복하며 각 문자가 찾으려는 문자의 대문자 또는 소문자인지 모두 비교한다.
문자열 전체를 한 가지 케이스(예: 모두 대문자)로 통일한 후 해당 문자의 개수를 센다.
대문자와 소문자의 개수를 각각 세어 합산한다.
Set 자료구조를 사용하여 중복 없이 문자를 저장한 후 개수를 센다.





