본문 바로가기

CodingTest Practice

[인프런] 문자 찾기 - 문자열

문자 찾기

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

 

■ 문제 풀이

1) 문풀 설명
- 대소문자는 구분하지 않는다.
- 문자열의 길이는 100을 넘지 않는다.


2) 입력 설명
- 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.
- 문자열은 영어 알파벳으로만 구성

3) 출력 
- 첫 줄에 해당 문자의 개수를 출력

 

import java.util.Scanner;

public class FindCharacter {

    public static void main(String[] args) {
        FindCharacter findCharacter = new FindCharacter();
        Scanner in = new Scanner(System.in);
        /**
         * 첫번 째 방법.
         */
//        String input1 = in.next();
//        String input2 = in.next();
//
//        int answer = findCharacter.solution(input1, input2);
//        System.out.println(answer);

        /**
         * 두번째 방법.
         */
        String input1 = in.next();
        char c = in.next().charAt(0);
        int answer = findCharacter.solution2(input1, c);
        System.out.println(answer);
    }

    public int solution2(String input1, char c){
        int answer = 0;
        //대소문자 구분하지 X
        input1 = input1.toLowerCase();
        c = Character.toLowerCase(c);

//        for (int i = 0; i < input1.length(); i++) {
//            if (input1.charAt(i) == c) {
//                answer++;
//            }
//        }

        for (char one: input1.toCharArray()) {
            if (one == c){
                answer++;
            }
        }

        return answer;
    }

    public int solution(String input1, String input2) {
        int answer = 0;

        String[] strings = input1.toLowerCase().split("");
//        for (int i = 0; i < strings.length; i++) {
//            if (strings[i].equals(input2.toLowerCase())) {
//                answer++;
//            }
//        }
        for (String one : strings) {
            if (one.equals(input2.toLowerCase())) {
                answer++;
            }
        }

        return answer;
    }
}