인프런 커뮤니티 질문&답변

Park Jiho님의 프로필 이미지
Park Jiho

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

1번문제 틀린 이유를 모르겠습니다.

작성

·

289

0

import java.util.Scanner;

// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.
public class Main {

    public int solution(String data, char what) {
        int count = 0;
        data = data.toLowerCase();
       for (char a : data.toCharArray()) {
           if (a == what) {
               count++;
           }
       }

       return count;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner scanner = new Scanner(System.in);
        String data = scanner.nextLine();
        char what = scanner.nextLine().charAt(0);
        System.out.println(T.solution(data, what));
    }
}

1번 문제인데 이대로 제출하니까 틀렸다고 합니다. 원인을 모르겠어요 ㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
제출하신 코드를 보면, 문자열과 문자 하나를 입력 받아 해당 문자가 문자열에 몇 개 존재하는지 세는 프로그램으로 보입니다. 코드는 대소문자를 구분하지 않도록 문자열을 소문자로 변환하고 있네요.

문제가 발생한 원인은 다음과 같을 수 있습니다:
1. 입력 받는 문자(what)도 toLowerCase()를 사용하여 소문자로 변환해야 합니다. 그렇지 않으면 대문자를 입력받았을 때, 소문자로만 이루어진 문자열에서 찾을 수 없기 때문입니다.
2. 입력에 대한 부가 설명(예: 첫 번째 입력은 문자열, 두 번째 입력은 문자)이 코드에 없으므로, 사용자가 어떤 형식으로 입력해야 하는지 혼동을 겪을 수 있습니다. 사용하는 플랫폼의 요구사항에 맞게 입력을 안내하는 주석을 추가하거나 출력문을 삽입해야 할 수 있습니다.

해당 문제를 해결하기 위해 다음과 같이 코드를 수정해 보실 수 있습니다:

import java.util.Scanner;

public class Main {

    public int solution(String data, char what) {
        int count = 0;
        data = data.toLowerCase();
        what = Character.toLowerCase(what); // 이 부분을 추가하여 문자도 소문자로 변환합니다.
        for (char a : data.toCharArray()) {
           if (a == what) {
               count++;
           }
       }

       return count;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner scanner = new Scanner(System.in);
        String data = scanner.nextLine();
        char what = scanner.nextLine().charAt(0);
        System.out.println(T.solution(data, what));
    }
}

변경한 후에도 문제가 해결되지 않는다면 다음을 확실히 점검해 보세요:
- 입력 형식이 정확한지 (공백, 개행 문자 등)
- 제출 환경에서는 다른 예외 케이스가 존재하는지

추가적으로 문제가 발생할 때는, 디버깅을 위해 입력과 함께 중간 값을 출력해보는 것도 도움이 될 수 있습니다.

Park Jiho님의 프로필 이미지
Park Jiho

작성한 질문수

질문하기