
입력받은 문자열을 차례로 탐색하면서 입력받은 특정문자와 동일한 문자일 경우 카운팅을 해주면 되는 간단한 문제이다.
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String str = in.nextLine().toLowerCase();
char ch = in.next().toLowerCase().charAt(0);
int cnt = 0;
for(int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ch) cnt++;
}
System.out.println(cnt);
}
}
오랜만에 푸는 알고리즘 문제라 class 만드는 것도 좀 어색해서 반성중이다. char형식 어떻게 입력 받는지 몰라 구글링도 해서 완전 내 힘으로 풀었다고 말하기 어렵다.
import java.util.*;
public class Main {
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) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String str = in.next();
char c = in.next().charAt(0);
System.out.print(T.solution(str, c));
}
}
처음 코드에서도 for-each 문 사용하고 싶었는데 String 타입을 그대로 사용하니 오류가 나서 사용못했다. String 타입의 문자열을 char 타입의 배열로 바꿔주는 친절한 toCharArray()를 사용하면 된다.
개행문자를 읽느냐 안읽느냐 차이이다.
Scanner in = new Scanner(System.in);
System.out.print(in.next());

입력: Hello World!
출력: Hello
Scanner in = new Scanner(System.in);
System.out.print(in.nextLine());

입력: Hello World!
출력: Hello World!