• 문제 링크
1522번: 문자열 교환
a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해
www.acmicpc.net
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
int range = 0;
for (int i = 0; i < s.length(); i++) if (s.charAt(i) == 'a') range++;
int min = 1000;
for (int i = 0; i < s.length(); i++, range++) {
int cnt = 0;
for (int j = i; j < range; j++) if (s.charAt(j % s.length()) == 'b') cnt++;
min = Math.min(min, cnt);
}
bw.write(String.valueOf(min));
bw.flush();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1075 나누기 - Brute Force / Java (0) | 2024.01.27 |
---|---|
[백준] 16561 3의 배수 - Brute Force / Java (0) | 2024.01.26 |
[백준] 13908 비밀번호 - Brute Force / Java (0) | 2024.01.24 |
[백준] 1977 완전제곱수 - Brute Force / Java (0) | 2024.01.23 |
[백준] 6193 Hungry Cows - Dynamic Programming / Java (0) | 2024.01.22 |
댓글