작성
·
134
0
import java.util.Scanner;
public class 단어뒤집기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int num = sc.nextInt();
String text1 = sc.next();
String text2 = sc.next();
String text3 = sc.next();
text1 = sb.append(text1).reverse().toString();
sb.setLength(0);
text2 = sb.append(text2).reverse().toString();
sb.setLength(0);
text3 = sb.append(text3).reverse().toString();
sb.setLength(0);
System.out.println(text1);
System.out.println(text2);
System.out.println(text3);
sc.close();
}
}
단어 뒤집기 강의 듣기전 제가 짠 소스인데, 출력결과는 문제와 동일하게 나왔는데, 제출 시 오답나와서 어떤 예외가 있는건지 몰라 문의드립니다. 혹시 불필요한 소스가 있는지도 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
Cat Developer님, 제출하신 단어뒤집기
코드를 확인해보니 입력 받는 단어의 수가 정해져 있지 않고, num
변수를 통해 여러 개의 단어를 입력 받을 수 있는 것으로 보입니니다. 그럼에도 불구하고 코드에서는 text1
, text2
, text3
세 개의 단어만을 뒤집어 출력하고 있으므로, 이 점이 오답의 원인이 될 수 있습니다.
문제의 요구사항에 따라 num
변수를 활용하여 입력 받은 단어의 수만큼 반복문을 사용하여 단어를 뒤집는 로직으로 수정이 필요합니다. 예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
import java.util.Scanner;
public class 단어뒤집기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int num = sc.nextInt(); // 입력 받을 단어의 수
for (int i = 0; i < num; i++) {
String text = sc.next(); // 단어 입력 받기
text = sb.append(text).reverse().toString(); // 단어 뒤집기
sb.setLength(0); // StringBuilder 초기화
System.out.println(text); // 뒤집은 단어 출력
}
sc.close();
}
}
num 만큼 for문을 실행하여 입력 받은 각 단어를 뒤집고 출력하는 형태로 변경하는 것이 좋겠습니다. 이렇게 하면 입력 받은 단어의 수에 맞게 단어를 뒤집어 출력할 수 있습니다.
불필요한 소스는 현재 보여주신 내용에서는 딱히 없으나, 문제 요구사항에 따라 입력과 출력의 형식을 정확히 맞추어야 한다는 것을 유념해주시기 바랍니다.