문제 설명
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지
알아내는 프로그램을 작성하세요.
입력
첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 해당 문자의 개수를 출력한다.
![](https://blog.kakaocdn.net/dn/xRrYc/btrB6PvjVKw/Dhif4IKl5s0hTEEMPj8P20/img.png)
* 나의 접근 방법
: 1) ch가 대문자일때 toUpperCase()를 이용하여 sum1에 담고, 소문자일때 toLowerCase()이용하여 sum2에 담는다.
2) sum1, sum2 둘 중하나는 무조건 0이 나오므로 둘중 큰 숫자가 정답.
import java.util.Scanner;
class Main {
public int solution(String str, char ch) {
//프로그래머스 방식
int answer = 0;
str = str.toUpperCase(); //대문자로 변환
int sum1 = 0, sum2 = 0;
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) == ch) {
sum1++;
}
}
str = str.toLowerCase(); //소문자 변환
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) == ch) {
sum2++;
}
}
answer = Math.max(sum1, sum2);
return answer;
}
public static void main(String[] args){
//백준방식
Main t = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
char ch = sc.next().charAt(0);
System.out.println(t.solution(str, ch));
}
}
+ 보완.
1) ch도 대문자로 바꿔주기 ch = Character.toUpperCase(ch);
2) 향상된 for문
for (자료형 변수명 : 배열) { }
toCharArray : 문자열을 char 배열로 변환
import java.util.Scanner;
class Main {
public int solution(String str, char ch) {
int answer = 0;
str = str.toUpperCase(); //문자열 대문자로 변환
ch = Character.toUpperCase(ch); //문자 대문자로 변환
for(char x : str.toCharArray()) // 향상된 for문
if( x == ch) answer++;
return answer;
}
public static void main(String[] args){
Main t = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
char ch = sc.next().charAt(0);
System.out.println(t.solution(str, ch));
}
}
'코딩테스트 > basic' 카테고리의 다른 글
[JAVA]String06.중복 문자 제거 (0) | 2022.05.17 |
---|---|
[JAVA]String05.특정문자 뒤집기 (0) | 2022.05.15 |
[ JAVA]String04.단어 뒤집기 (0) | 2022.05.15 |
[JAVA]String03.문장 속 단어 (0) | 2022.05.15 |
[ JAVA]String02.대소문자 변환 (0) | 2022.05.15 |