알고리즘/자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
1-1 문자 찾기
보름달빵
2025. 4. 7. 16:48
문제 포인트
- 문자열은 영어 알파벳으로만 구성되어있다.
- 영어 대소문자를 구분하지 않는다
풀이
대소문자를 구분하지 않는다면 첫번째 줄에서 입력받은 문자열과, 두번째 줄에서 입력받은 문자를 모두 대문자 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 과 같은 원시타입의 경우 == 를 사용하게 된다면 단순히 값만 비교한다.