inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

327

Park Jiho

작성한 질문수 3

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번 문제인데 이대로 제출하니까 틀렸다고 합니다. 원인을 모르겠어요 ㅠ

java 코딩-테스트

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 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));
    }
}

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

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

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

28

1

갑자기 채점 사이트가 바뀌었어요

0

32

1

문제 리스트 페이지

0

29

1

채점 사이트 관련 질문드립니다

0

23

1

봉우리 문제 질문입니다

0

81

2

씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?

0

64

0

이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?

0

72

0

가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법

0

67

1

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

0

85

2

6-7 강의에서

0

48

1

6-6. 장난꾸러기 질문 있습니다.

0

45

1

강의 수강후 코딩테스트

0

110

1

answer 변수 사용 여부

0

44

1

2중 for문

1

85

2

2-11. 임시반장정하기 (Runtime Error)

0

63

1

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

0

70

1

이런 풀이는 어떨까요

0

43

1

자바 스트림 방식의 효율성 질문 드립니다.

0

57

1

알고리즘 자료 구조들..

0

62

1

StringBuilder vs BufferdWriter

0

48

1

원더랜드(프림)

0

50

1

이런 코드는 어떤가요?

0

61

1

bfs 풀이

0

57

1

병합정렬

0

56

1