https://www.acmicpc.net/problem/1522
1522번: 문자열 교환
a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해
www.acmicpc.net

1. 나의풀이
<bash />
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int answer = Integer.MAX_VALUE;
String temp= br.readLine();
//a의 개수 구하기
int acnt=0;
for(int i=0; i<temp.length(); i++){
if(temp.charAt(i) == 'a'){
acnt++;
}
}
//a의 개수만큼을 슬라이딩 윈도우 크기로 잡기. a가 연속이다 == a의 개수만큼 연속적으로 위치한다.
for(int i=0;i<temp.length(); i++){
int bcnt=0;
for(int j=i; j< i+acnt; j++){
if(temp.charAt(j%temp.length()) == 'b'){
bcnt++;
}
}
answer=Math.min(answer, bcnt);
}
bw.write(Integer.toString(answer));
bw.flush();
br.close();
bw.close();
}
}
'코테풀이' 카테고리의 다른 글
[백준] BOJ - 2075 N번째 큰 수 java (실버2) (0) | 2023.04.06 |
---|---|
[백준] BOJ - 2304 창고 다각형 java (실버2) (0) | 2023.04.04 |
[백준] BOJ - 2164 카드2 java 자바 (실버4) (0) | 2023.04.02 |
[백준] BOJ - 2607 비슷한 단어 java 자바 (실버3) (0) | 2023.04.02 |
[백준] BOJ - 11501 주식 java 자바 (실버2) (0) | 2023.04.02 |