๋ฐ์ํ
https://codeforces.com/problemset/problem/721/A
์ฝ๋
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
String str = scan.next();
int blackCount = 0; // ์ฐ์๋ ๊ฒ์ ์ฌ๊ฐํ์ ํ
List<Integer> list = new ArrayList<Integer>();
for(int i=0; i<str.length(); i++) {
// ํ์ฌ ๊ฒ์ ์ ๋ธ๋ก์ผ ๋
if(str.charAt(i) == 'B')
blackCount ++;
// ์ ์ ๊ฒ์ ์ฌ๊ฐํ์ด ์๊ณ , ํ์ฌ ๋ธ๋ก์ด ํ์ดํธ์ผ ๋
if(blackCount != 0 && str.charAt(i) == 'W') {
list.add(blackCount);
blackCount = 0;
}
// ๋ง์ง๋ง ๋ธ๋ก๊น์ง ๋๋ฌํ์ ๋, ๊ฒ์ ์ ๋ธ๋ก์ด ์นด์ดํธ ๋์ด์๋๊ฒฝ์ฐ
if(i == str.length()-1 && blackCount != 0)
list.add(blackCount);
}
System.out.println(list.size());
for(int i : list)
System.out.print(i + " ");
scan.close();
}
}
ํ์ด
1 x n ์ ์ง์ฌ๊ฐํ์์, ์ฐ์๋ ๊ฒ์ ์์ ๊ฐฏ์์ ๊ฒ์ ์ ๊ทธ๋ฃน์ ๊ฐฏ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ .
ArrayList๋ฅผ ์ ์ธํด์ for๋ฌธ์ ๋๋ฉด์ ๊ฐ ๊ฒ์ ์์ ๊ฐฏ์๋ฅผ ArrayList์ ๋ฃ๋๋ค.
๊ทธ๋ฃน์ ๊ฐฏ์๋ list์ ๋ฃ์ size()์ ๋์ผํ ๊ฒ์ด๊ณ , ๊ฐ๊ฐ์ ์์๋ฅผ ๋ฝ์๋ด๋ฉด ์ฐ์๋ ๊ฒ์ ์์ ๊ฐฏ์๋ฅผ ์ ์ ์๋ค.
ํ์ฌ ๊ฒ์ํ๊ณ ์๋ ์์ด 'W'์ผ ๊ฒฝ์ฐ, ์ด์ ์ ๊ฒ์ ์์ผ๋ก ์น ํ๊ฒ ์๋๊ฒฝ์ฐ(blackCount != 0) list์ ๋ฃ์ด์ค๋ค.
๋ง์ง๋ง if๋ฌธ์ ๊ฒฝ์ฐ, ์ง์ฌ๊ฐํ์ ๋ง์ง๋ง์ด W๋ก ๋๋ฌ์๊ฒฝ์ฐ, ์ฐ์๋ ๊ฒ์ ๋ธ๋ก์ list์ ๋ฃ์ง ๋ชปํ๋ฏ๋ก ์กฐ๊ฑด์ ์ถ๊ฐํ๋ค.
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)ํฐ์ผ๋ชฌ (0) | 2020.03.13 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)๋ค์ ํฐ ์ซ์ (0) | 2020.03.13 |
[๋ฐฑ์ค] 1057๋ฒ: ํ ๋๋จผํธ(๊ตฌํ, ์ํ) (0) | 2020.03.12 |
[๋ฐฑ์ค] 2979๋ฒ: ํธ๋ญ ์ฃผ์ฐจ(๊ตฌํ, ์๋ฎฌ๋ ์ด์ ) (0) | 2020.03.12 |
[๋ฐฑ์ค] 1911๋ฒ: ํ๊ธธ ๋ณด์ํ๊ธฐ(๊ทธ๋ฆฌ๋) (1) | 2020.03.12 |
๋๊ธ