인프런 커뮤니티 질문&답변
선생님 왜 오답인지 모르겠습니다..
작성
·
358
0
import java.util.Scanner;
public class Main {
public String solution(String str){
char[] chaArray = str.toCharArray();
int lt = 0;
int rt = str.length()-1;
while(lt < rt){
char temp = chaArray[lt];
if(Character.isLetterOrDigit(temp) == true){
chaArray[lt] = chaArray[rt];
chaArray[rt] = temp;
}
lt ++;
rt --;
}
return String.valueOf(chaArray);
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(main.solution(str));
}
}
처음에는 솔루션메서드 안에서 호출해도 안되서
main안에서 바로 출력해도 오답이라고 나오네요 계속...
퀴즈
61%나 틀려요. 한번 도전해보세요!
대소문자를 구분하지 않고 문자열 내 특정 문자의 총 개수를 세려면, 어떤 방법이 가장 효율적일까요?
문자열을 반복하며 각 문자가 찾으려는 문자의 대문자 또는 소문자인지 모두 비교한다.
문자열 전체를 한 가지 케이스(예: 모두 대문자)로 통일한 후 해당 문자의 개수를 센다.
대문자와 소문자의 개수를 각각 세어 합산한다.
Set 자료구조를 사용하여 중복 없이 문자를 저장한 후 개수를 센다.
답변 3
1
앗! 선생님이 다른 글에 달아주신 예제가 반례내요!
input: "kj#$stpj" / output: "jp#$tsjk"
제가 문제를 제대로 이해하지 못했던 것 같아요 감사합니다!
1
0
안녕하세요! 강의 잘 듣고 있습니다!
교수님 if (Character.isAlphabetic(charArray[lt]) && Character.isAlphabetic(charArray[rt])) 으로 좌측 값과 우측 값이 모두 알파벳이면 바꿔주는 방식으로 했는데 https://cote.inflearn.com/contest/10/problem/01-05 문제풀이 사이트에서 오답으로 나와서 혹시 반례가 있을까요?
import java.util.Scanner;
public class Main {
public String solution(String string) {
String answer = "";
int lt = 0, rt = string.length() - 1;
char[] charArray = string.toCharArray();
while (lt < rt){
if (Character.isAlphabetic(charArray[lt]) && Character.isAlphabetic(charArray[rt])){
char temp = charArray[lt];
charArray[lt] = charArray[rt];
charArray[rt] = temp;
}
lt++;
rt--;
}
answer = String.valueOf(charArray);
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner scan = new Scanner(System.in);
String input = scan.next();
System.out.println(T.solution(input));
}
}





안녕하세요^^
주말에도 열심히 공부하시네요. 화이팅하세요!!