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

1-1 문자 찾기

by 보름달빵 2025. 4. 7.

문제 포인트 

  • 문자열은 영어 알파벳으로만 구성되어있다. 
  • 영어 대소문자를 구분하지 않는다 

 

풀이 

대소문자를 구분하지 않는다면 첫번째 줄에서 입력받은 문자열과, 두번째 줄에서 입력받은 문자를 모두 대문자 or 소문자로 바꿔서 통일시켜줘야한다. 

 

 

 

package 섹션1_String;

import java.io.*;

public class 문자찾기 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str= br.readLine().toUpperCase(); // 문자열
        char c= br.readLine().toUpperCase().charAt(0); // 찾고자 하는 문자

        int answer=0; // 찾고자하는 문자가 나온 횟수

        for(char strChar:str.toCharArray()){
            if(strChar==c){
                answer++;
            }
        }
        System.out.println(answer);
        br.close();
    }
}

 

 

 

for문을 이용한 문자열 비교 

for(int i=0;i<str.length();i++){ // 문자열의 길이만큼 반복
    if(c==str.charAt(i)){
        answer++;
    }
}

 

 

 


 

✅ == 연산 

 

 

 

String이나 Character 처럼 객체를 ==로 비교하게 되면, 값 뿐만 아니라 인스턴스의 주소도 비교하기 때문에 값이 같아도 다른 객체인 경우(인스턴스의 주소가 다른경우) false 값이 나오게 된다. 따라서 문자열에서 단순히 값만 비교하고 싶은 경우 eqauls( ) 를 사용해야한다. 

 

하지만 int,boolean,char 과 같은 원시타입의 경우 == 를 사용하게 된다면 단순히 값만 비교한다.