종식당

자바 알고리즘 문제풀이 1.문자 찾기 본문

자바 알고리즘 문제풀이

자바 알고리즘 문제풀이 1.문자 찾기

종식당 2024. 10. 30. 20:55
728x90
반응형

 

  • 문제 설명
    문자열과 문자를 입력받으면 문자열에 문자가 대소문자 구분하지 않고 몇 개가 있는지 출력하면 되는 문제이다.

 

  • 제출 코드
import java.util.Scanner;

public class Main {
    public int solution(String str, char ch){
        int cnt = 0;
        str = str.toUpperCase();
        ch = Character.toUpperCase(ch);
        for(int i = 0; i < str.length(); i++){
            if (str.charAt(i) == ch){
                cnt+=1;
            }
        }
        return cnt;
    }


    public static void main(String[] args) {
        Main T = new Main();
        Scanner scanner = new Scanner(System.in);

        String str = scanner.next();
        char ch = scanner.next().charAt(0);

        System.out.println(T.solution(str, ch));


    }
}

 

  • 코드 설명
    문자열에 문자가 대소문자 상관없이 몇 개가 있는지 알아야 하기 때문에 먼저 대소문자를 비교해 주는 코드가 있어야 한다. 문자열과 문자 모두 대문자나 소문자로 바꿔준 다음에 비교를 진행하면 된다. 
    toUpperCase() 함수를 통해 문자열들을 모두 대문자로 바꿔준다.
    그다음에 for문을 통해 문자열을 하나하나 돌아주면 된다. 이때 자바에서 문자열을 index로 접근하기 위해서는 charAt() 함수를 사용해서 접근하면 된다. 접근해서 이 문자가 ch와 같으면 개수를 1 증가한다.
  • 마무리
    자바에서는 toCharArray() 함수를 통해 문자열을 문자 배열로 만들 수 있다. 이는 문자열을 루프를 통해 각 문자를 순회할 때 유용한다.
    위 문제에서는 일반적인 for문을 사용했지만 for each를 사용하면 for (char item : str.toCharArray())이런 식으로 문자 하나하나에 접근할 수 있다.




728x90
반응형