https://www.acmicpc.net/problem/20365
[풀이]
- B와 R을 구분하여 ArrayList에 값을 추가하였다. 이를 통해 B는 몇 개있는지, R은 몇 개 있는지 확인 할 수 있다.
- 최소한의 방법은 더 많은 색깔을 전체 칠한 후, 적은 개수의 색깔을 해당하는 위치에 덧칠하는 것이다. 그러므로 각 List의 크기를 비교하면 된다.
- size() 메소드에 +1을 하는 이유는 처음 더 많은 수의 색깔을 전체 칠하기 때문이다.
(주의해야할 부분)
- 크기를 비교해야 하는 부분, 그리고 처음 더 많은 개수의 색깔로 칠하는 부분 이 두가지에 대하여 주의해야 한다고 생각한다.
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bf.readLine());
int answer = 0;
List<String> bList = new ArrayList<>();
List<String> rList = new ArrayList<>();
String line = bf.readLine();
StringTokenizer st = new StringTokenizer(line, "R");
while (st.hasMoreTokens()) {
bList.add(st.nextToken());
}
st = new StringTokenizer(line, "B");
while (st.hasMoreTokens()) {
rList.add(st.nextToken());
}
if (rList.size() >= bList.size()) {
answer = bList.size() + 1;
} else {
answer = rList.size() + 1;
}
System.out.println(answer);
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 16395번 : 파스칼의 삼각형(Java) (0) | 2021.08.08 |
---|---|
백준 1543번 : 문서 검색(Java) (0) | 2021.08.06 |
백준 11060번 : 점프 점프(Java) (0) | 2021.08.04 |
백준 1874번 : 스택 수열(Java) (0) | 2021.08.01 |
백준 11279번 : 최대 힙(Java) (0) | 2021.08.01 |