문제출처 : https://www.acmicpc.net/problem/23797
이게 내생각에는 내풀이가 맞는데, 왜틀린지 모르겠다..
code
#include <iostream>
#include <string>
using namespace std;
int main()
{
string frog;
int cnt, K_cnt = 0, P_cnt = 0;
cin >> frog;
for (int i = 0; i < frog.length(); i++)
{
if (frog[i] == 'K')
K_cnt++;
if (frog[i] == 'P')
P_cnt++;
}
cnt=abs(K_cnt - P_cnt);
cout << cnt+1;
return 0;
}
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 S_len = S.length();
char[] arr = S.toCharArray();
int k = 0,p=0;
int result=0;
for(int i=0;i<S_len;i++){
if(arr[i]=='K'){
k++;
if(p>0){
p--;
}
}else{
p++;
if(k>0){
k--;
}
}
result = k+p;
}
bw.write(result+"");
bw.close();
br.close();
}
}
K울음소리횟수와 P울음소리 횟수를 각각구하는데,
K울었는데 P울었으면(그 반대경우도 동일) 한개구리가 되므로 횟수에서 빼준다.
그래서 남은 울음소리 K,P들을 합치면 개구리가 몇마리인지 나온다.
예전의 난 무슨 코드를 짯는지 모르겠다..