문자 찾기

코코·2023년 7월 25일
0

기초 알고리즘

목록 보기
1/3
post-thumbnail

1. 문제설명

한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.

대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.

2. 입력

첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.

문자열은 영어 알파벳으로만 구성되어 있습니다.

3. 출력

첫 줄에 해당 문자의 개수를 출력한다.

예시입력

Newengland
n

예시출력

3

★풀이★

한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 
입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.
대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.

위에서 말한대로 문자열을 입력받는 변수, 특정 문자를 입력받는 변수를 각각 만들고 특정문자가 문자열에 몇 개 존재하는지 알아내는 메소드를 만들어 준다.

public static void main(String[] args){
        
        // 1. 문자열을 돌면서 문자를 찾아줄 메소드를 이용하기 위해 객체 생성
        Main m = new Main();

        // 2. 스캐너를 이용
        Scanner sc=new Scanner(System.in);

        // 3. 스캐너를 통해 받은 입력을 문자열 str과 문자 t 변수에 각각 할당
        String str = sc.next();
        char t = sc.next().charAt(0);

        System.out.println(m.solution(str,t));
}

이제 solution이란 메소드에 특정문자가 문자열에 몇 개 존재하는지 알아내는 기능을 구현해서 넣어준다.

	    public int solution(String str, char t) {
        int answer = 0;
        
        // 4. solution 메소드에 매개변수 str, t를 담아와서
        // 대소문자 상관없다고 했으니 전부 다 대문자로 변경
        
        str = str.toUpperCase();
        t = Character.toUpperCase(t);

        // 5. str의 길이만큼 for문을 돌면서 str의 각각의 문자들과
        // 위에서 받아온 t를 각각 비교해서 일치할 경우 answer에 1씩 더해준다
        
        for(int i = 0; i < str.length(); i++){
            if(str.charAt(i) == t) {
                answer++;
            }
        }
        return answer;
    	}

위는 for문으로 돌려서 일치하는 문자를 찾았는데, 아래와 같이 foreach로도 가능하다.

    for(char x: str.toCharArray()) {
        if(x == t) answer ++;
    }

4. 결과

입력

newengland
n

출력

3

newengland에 들어있는 n의 갯수는 3개

profile
Just Do It

0개의 댓글