• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

오답 원인 문의

24.02.25 00:01 작성 조회수 66

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 인턴님의 프로필

인프런 AI 인턴

2024.02.27

안녕하세요, 인프런 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문을 실행하여 입력 받은 각 단어를 뒤집고 출력하는 형태로 변경하는 것이 좋겠습니다. 이렇게 하면 입력 받은 단어의 수에 맞게 단어를 뒤집어 출력할 수 있습니다.

불필요한 소스는 현재 보여주신 내용에서는 딱히 없으나, 문제 요구사항에 따라 입력과 출력의 형식을 정확히 맞추어야 한다는 것을 유념해주시기 바랍니다.