์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step5] 8958 : OX ํ€ด์ฆˆ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 9. 20:23

www.acmicpc.net/problem/8958

 

8958๋ฒˆ: OXํ€ด์ฆˆ

"OOXXOXXOOO"์™€ ๊ฐ™์€ OXํ€ด์ฆˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๋‹ค. O๋Š” ๋ฌธ์ œ๋ฅผ ๋งž์€ ๊ฒƒ์ด๊ณ , X๋Š” ๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฐ ๊ฒƒ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ๋งž์€ ๊ฒฝ์šฐ ๊ทธ ๋ฌธ์ œ์˜ ์ ์ˆ˜๋Š” ๊ทธ ๋ฌธ์ œ๊นŒ์ง€ ์—ฐ์†๋œ O์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 10๋ฒˆ ๋ฌธ์ œ์˜ ์ ์ˆ˜

www.acmicpc.net


๋ฌธ์ œ

"OOXXOXXOOO"์™€ ๊ฐ™์€ OXํ€ด์ฆˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๋‹ค. O๋Š” ๋ฌธ์ œ๋ฅผ ๋งž์€ ๊ฒƒ์ด๊ณ , X๋Š” ๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฐ ๊ฒƒ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ๋งž์€ ๊ฒฝ์šฐ ๊ทธ ๋ฌธ์ œ์˜ ์ ์ˆ˜๋Š” ๊ทธ ๋ฌธ์ œ๊นŒ์ง€ ์—ฐ์†๋œ O์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 10๋ฒˆ ๋ฌธ์ œ์˜ ์ ์ˆ˜๋Š” 3์ด ๋œ๋‹ค.

"OOXXOXXOOO"์˜ ์ ์ˆ˜๋Š” 1+2+0+0+1+0+0+1+2+3 = 10์ ์ด๋‹ค.

OXํ€ด์ฆˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ธธ์ด๊ฐ€ 0๋ณด๋‹ค ํฌ๊ณ  80๋ณด๋‹ค ์ž‘์€ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด์€ O์™€ X๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ์ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

5

OOXXOXXOOO

OOXXOOXXOO

OXOXOXOXOXOXOX

OOOOOOOOOO

OOOOXOOOOXOOOOX

 

์˜ˆ์ œ ์ถœ๋ ฅ 1

10

9

7

55

30


ํ’€์ด

1. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ num์„ ์ž…๋ ฅ๋ฐ›๊ณ  ํ€ด์ฆˆ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  str[num], ์ด ์ ์ˆ˜๋ฅผ ์ €์žฅํ•  total[num] ๋ฐฐ์—ด์„ ์„ ์–ธ

2. O๊ฐ€ ์—ฐ์†๋ ์ˆ˜๋ก ์ฆ๊ฐ€๋˜๋Š” ์ ์ˆ˜ score๋ฅผ ์„ ์–ธํ•œ ํ›„ 1๋กœ ์ดˆ๊ธฐํ™”

3. ํ€ด์ฆˆ์˜ ๊ฒฐ๊ณผ๋ฅผ charํ˜• ํ•˜๋‚˜์”ฉ ๋น„๊ต.

   3-1. O์ด๋ฉด score๋ฅผ total์— ๋”ํ•˜๊ณ  score++ํ•ด์ค€๋‹ค. (O๊ฐ€ ์—ฐ์†๋  ์‹œ 1์  ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด)

   3-2. X์ด๋ฉด score๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ค€๋‹ค.

4. ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๊ณ  score๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”

5. total์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

import java.util.Scanner;

public class B8958 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);

		int num = sc.nextInt();
		
		String[] str = new String[num];
		int score = 1; // O๊ฐ€ ๋ช‡๊ฐœ์ธ์ง€ ๋”ฐ๋ผ ๋ฐ”๋€Œ๋Š” ์ ์ˆ˜
		int[] total = new int[num]; // ์ด ์ ์ˆ˜ ๊ธฐ๋กํ•˜๋Š” ๋ณ€์ˆ˜
		
		for(int i = 0; i < num; i++) {
			
			str[i] = sc.next();
			
			for(int j = 0; j < str[i].length(); j++) {
				char c = str[i].charAt(j);
				if (c == 'O') {
					total[i] += score++; // O๊ฐ€ ์—ฐ์†๋ ์ˆ˜๋ก score++ํ•ด์คŒ
				} else if (c == 'X') {
					score = 1; // O๊ฐ€ ๋Š๊ธฐ๊ณ  X๊ฐ€ ๋‚˜์˜ค๋ฉด score 1๋กœ ์ดˆ๊ธฐํ™”
				}		
			}
			score = 1;
		}
		
		for(int i = 0; i < num; i++) {
			System.out.println(total[i]);
		}

	}

}