백준 2941번 www.acmicpc.net/problem/2941
풀이
BufferedReader 를 이용해서 풀이 시간을 단축할 수 있었다. 각 경우에 수를 나누어 생각하면 되는데 입력받은 문자열에서 크로아티아 알파벳이 나오면 cnt 를 더해준다.
크로아티아 알파벳을 찾는 방법은 특정 문자 뒤에 나오는 문자가 크로아티아 알파벳에 해당하는지 && 조건으로 알아본다.
이 문제에서 주의할 점은
1. 크로아티아 알파벳이 2개의 문자로 되어 있는 경우와 3개의 문자로 되어 있는 경우가 있으므로 이를 구분하여 for문이 적용될 수 있도록 해야 한다.
2. if(ch=='c' && (a.charAt(i+1)=='=' || a.charAt(i+1)=='-')) 와 같이 비교 연산자의 순위도 고려하여 괄호로 구분을 해주어야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String a = br.readLine();
int len = a.length();
int cnt = 0;
for (int i=0; i<len; i++) {
char ch = a.charAt(i);
if(i<len-1) {
if(ch=='c' && (a.charAt(i+1)=='=' || a.charAt(i+1)=='-'))
i++;
else if(ch=='d' && a.charAt(i+1)=='-')
i++;
else if(ch=='l' && a.charAt(i+1)=='j')
i++;
else if(ch=='n' && a.charAt(i+1)=='j')
i++;
else if(ch=='s' && a.charAt(i+1)=='=')
i++;
else if(ch=='z' && a.charAt(i+1)=='=')
i++;
}
if(i<len-2) {
if(ch=='d' && a.charAt(i+1)=='z' && a.charAt(i+2)=='=')
i+=2;
}
cnt++;
}
System.out.println(cnt);
br.close();
}
}
|
cs |
'알고리즘과 코테' 카테고리의 다른 글
[Java | 백준 1929] 소수 구하기 (0) | 2021.03.19 |
---|---|
[Java | 백준 2908] 상수 (0) | 2021.03.18 |
[Java | 백준 1152] 단어의 개수 (0) | 2021.03.18 |
[JAVA | 백준 3052] 나머지 (0) | 2021.03.17 |
[JAVA | 백준 2562] 최댓값 (0) | 2021.03.17 |
댓글
최근에 올라온 글
TAG
- JIRA
- putty
- 독서후기
- 웹페이지만들기
- jdbc
- 배포
- 기술블로그
- LifecycleException
- 개발도서
- 노마드코더
- 오늘의코딩
- EC2
- SQLD
- 정보처리기사 필기
- AWS
- filezila
- gradle
- 호스팅영역
- 정보처리기사
- intellij
- ubuntu
- spring
- 노개북
- git연동
- 정보처리기사 실기
- gradle build
- java
- IT 5분 잡학사전
- 북클럽
- 실용주의프로그래머
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함