반응형
https://www.acmicpc.net/problem/2941
- 문제
- 문제 풀이
백준 2941번 크로아티아 알파벳은 실버 5 난이도의 구현 및 문자열 문제이다. 이 문제에서는 입력으로 단어 s가 주어진다. 그리고 이 단어에 크로아티아 알파벳이 총 몇 개인지를 출력해주면 되는 문제이다.
이 문제에서 표에 크로아티아 알파벳 6개가 나와있다. c=, c-, dz=, d-, lj, nj, s=, z= 그리고 나머지 일반 알파벳들이 다 크로아티아 알파벳들이다. 따라서 주어지는 문자열에서 이 6개의 크로아티아 알파벳과 일반 알파벳이 총 몇 개 있는지를 출력해주면 간단한 문제이다.
이 문제는 간단한 for-loop으로 풀 수 있다. 일단 크로아티아 알파벳 개수를 세기 위해 int형 변수 count를 선언한다. 그리고 for-loop은 i = 0부터 i < s.length()만큼 돌리고 6개의 경우와 일반 알파벳일 경우에 count를 1씩 증가시켜준다. 그리고 마지막에 count만 출력해주면 끝난다.
자세한 코드는 밑에 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int count = 0;
for (int i = 0; i < s.length(); i++) {
count++;
if (s.charAt(i) == 'c') {
//c=와 c- 체크
if (i < s.length()-1 && (s.charAt(i+1) == '-' || s.charAt(i+1) == '=')) {
i++;
}
}
else if (s.charAt(i) == 'd') {
//d- 체크
if (i < s.length()-1 && s.charAt(i+1) == '-') {
i++;
} else if (i < s.length()-2 && s.substring(i,i+3).equals("dz=")) {
//dz= 체크
i += 2;
}
}
//lj 체크
else if (s.charAt(i) =='l') {
if (i <s.length()-1 && s.charAt(i+1) == 'j') {
i++;
}
}
//nj 체크
else if (s.charAt(i) =='n') {
if (i <s.length()-1 && s.charAt(i+1) == 'j') {
i++;
}
}
//s= 체크
else if (s.charAt(i) =='s') {
if (i <s.length()-1 && s.charAt(i+1) == '=') {
i++;
}
}
//z= 체크
else if (s.charAt(i) =='z') {
if (i <s.length()-1 && s.charAt(i+1) == '=') {
i++;
}
}
}
System.out.print(count);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 9095번 : 1, 2, 3 더하기 – JAVA [자바] (0) | 2022.07.11 |
---|---|
[백준] 9012번 : 괄호 – JAVA [자바] (0) | 2022.07.11 |
[백준] 2869번 : 달팽이는 올라가고 싶다 – JAVA [자바] (0) | 2022.07.11 |
[백준] 10250번 : ACM 호텔 – JAVA [자바] (0) | 2022.07.11 |
[백준] 2292번 : 벌집 – JAVA [자바] (0) | 2022.07.10 |
댓글