📌 문제 설명
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 문자가 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.
- 대소문자를 구분하지 않습니다.
- 문자열의 길이는 최대 100입니다.
- 문자열은 영어 알파벳으로만 구성됩니다.
📝 입력 & 출력
🔹 입력
- 첫 번째 줄: 문자열 입력
- 두 번째 줄: 찾을 문자 입력
🔹 출력
- 첫 번째 줄: 해당 문자의 개수 출력
🔸 예제 입력 1
Computercooler
c
🔸 예제 출력 1
2
💡 해결 방법
- 문자열과 찾을 문자를 대문자로 변환하여 비교 (대소문자 구분 X)
- toCharArray()를 사용하여 문자열을 문자 배열로 변환
- for-each 문을 사용하여 특정 문자와 같은 경우 개수를 증가
💻 코드 구현 (Java)
package partString;
import java.util.*;
public class Problem1 {
public int solution(String str, char t) {
int answer = 0;
str = str.toUpperCase();
t = Character.toUpperCase(t);
for (char x : str.toCharArray()) {
if (x == t) answer++;
}
return answer;
}
public static void main(String[] args) {
Problem1 T = new Problem1();
Scanner kb = new Scanner(System.in);
String str = kb.next();
char c = kb.next().charAt(0);
System.out.print(T.solution(str, c));
kb.close();
}
}
📖 코드 설명
1️⃣ 문자열 & 문자 대문자로 변환
- str.toUpperCase() → 문자열을 대문자로 변환
- Character.toUpperCase(t) → 찾을 문자도 대문자로 변환
- ✅ 대소문자 구분 없이 비교할 수 있도록 설정
2️⃣ 문자열을 문자 배열로 변환
for (char x : str.toCharArray())
- toCharArray()를 사용하면 문자열을 문자 배열로 변환할 수 있음
- ✅ 문자 하나씩 확인할 수 있어 반복문에서 비교가 용이함
3️⃣ 특정 문자 개수 세기
if (x == t) answer++;
- if 문을 사용해 찾는 문자(t)와 같은 경우 개수를 증가시킴
- ✅ 최종적으로 개수를 return하여 출력
⏳ 시간 복잡도 분석
- O(n) (n: 문자열의 길이)
- 문자열을 한 번 순회(for-each)하며 문자 개수를 확인하므로 선형 시간 복잡도를 가짐
출처: 인프런 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의 | 김태원 - 인프런
김태원 | , 자바(Java) 알고리즘 문제풀이 채점사이트를 통해 기초부터 준비해보세요! 💪 [사진] 이 강의는 [사진] 자바(Java)로 코딩테스트 준비를 하고 계신 분께 추천드려요! 문제는 기초~ 중급
www.inflearn.com
'코딩테스트 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글
| 섹션 1. 문자열 - 6. 중복 문자 제거 (0) | 2025.03.18 |
|---|---|
| 섹션 1. 문자열 - 5. 특정 문자 뒤집기 (0) | 2025.03.18 |
| 섹션 1. 문자열 - 4. 단어 뒤집기 (0) | 2025.03.18 |
| 섹션 1. 문자열 - 3. 문장 속 단어 (1) | 2025.03.18 |
| 섹션 1. 문자열 - 2. 대소문자 변환 (0) | 2025.03.18 |