๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 13022_๋Š‘๋Œ€์™€ ์˜ฌ๋ฐ”๋ฅธ ๋‹จ์–ด

๋ฟŒ์•ผ._. 2024. 5. 2. 17:48

Silver II

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/13022)

< ๋Š‘๋Œ€์™€ ์˜ฌ๋ฐ”๋ฅธ ๋‹จ์–ด >

 

๋ฌธ์ œ ํ’€์ด 

 

๋‹จ์–ด๊ฐ€ ์กฐ๊ฑด์— ๋งž๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋‹จ์–ด์ธ์ง€ ํ™•์ธํ•œ๋‹ค.

 

์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋‹จ์–ด์ธ ๊ฒฝ์šฐ

1) ๋‹จ์–ด์˜ ๊ธธ์ด๊ฐ€ 4๋ณด๋‹ค ์ž‘์Œ

2) ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๊ฐ€ w์ด์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

3) w ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ w ๋˜๋Š” o๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ

4) o ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ o ๋˜๋Š” l๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ

5) l ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ l ๋˜๋Š” f๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ

6) f ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ f ๋˜๋Š” w๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ

6) ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๊ฐ€ f๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ

7) ๊ฐ w, o, l, f์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class _13022_ { // ๋Š‘๋Œ€์™€ ์˜ฌ๋ฐ”๋ฅธ ๋‹จ์–ด

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		String str = bf.readLine();

		int w = 0, o = 0, l = 0, f = 0;
		if (str.length() < 4) {
			System.out.println("0");
			return;
		}
		for (int i = 0; i < str.length(); i++) {
			if (i == 0) {
				if (str.charAt(i) != 'w') {
					System.out.println("0");
					return;
				}
				w += 1;
				if (!(str.charAt(i + 1) == 'w' || str.charAt(i + 1) == 'o')) {
					System.out.println("0");
					return;
				}
			} else if (i == str.length() - 1) {
				if (str.charAt(i) != 'f' || o != l) {
					System.out.println("0");
					return;
				}
				f += 1;
				if (l != f) {
					System.out.println("0");
					return;
				}

			} else {
				if (str.charAt(i) == 'w') {
					if (str.charAt(i - 1) == 'f') {
						w = 0;
						o = 0;
						l = 0;
						f = 0;
					}
					w += 1;
					if (!(str.charAt(i + 1) == 'w' || str.charAt(i + 1) == 'o') || l != f) {
						System.out.println("0");
						return;
					}
				} else if (str.charAt(i) == 'o') {
					o += 1;
					if (!(str.charAt(i + 1) == 'o' || str.charAt(i + 1) == 'l')) {
						System.out.println("0");
						return;
					}
				} else if (str.charAt(i) == 'l') {
					l += 1;
					if (!(str.charAt(i + 1) == 'l' || str.charAt(i + 1) == 'f') || w != o) {
						System.out.println("0");
						return;
					}
				} else if (str.charAt(i) == 'f') {
					f += 1;
					if (!(str.charAt(i + 1) == 'f' || str.charAt(i + 1) == 'w') || o != l) {
						System.out.println("0");
						return;
					}
				}
			}
		}
		System.out.println("1");
	}
}
๋ณ€์ˆ˜)
str : ๋‹จ์–ด
w, o, l, f : ๊ฐ w, o, l, f ๊ฐœ์ˆ˜

 

๋‹จ์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๊ฐ€ 4๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ wolf๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๋ฏ€๋กœ 0์„ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๊ฐ€ 4 ์ด์ƒ์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ์กฐ๊ฑด์„ ํŒ๋ณ„ํ•œ๋‹ค.

 

1) 0๋ฒˆ์งธ ๊ฐ’์ด w๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ ํ›„ ์ข…๋ฃŒ/ w๋ผ๋ฉด count ํ›„ ๋‹ค์Œ ๊ฐ’์ด w์ด๊ฑฐ๋‚˜ o์ธ์ง€ ํ™•์ธ

2) ๋งˆ์ง€๋ง‰ ๊ฐ’์ด f๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ o์™€ l์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด 0์„ ์ถœ๋ ฅํ•œ ํ›„ ์ข…๋ฃŒ/ f์ด๊ณ  o์™€ l์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด f count ํ›„ ์ตœ์ข… l๊ณผ f ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์€์ง€ ํŒ๋ณ„

3) ๊ทธ ์™ธ ๊ฐ ๊ฐ’์„ count ํ›„ ๋‹ค์Œ ๊ฐ’์ด ์ง€๊ธˆ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ์œผ๋กœ ๋‚˜์™€์•ผ ํ•  ๊ฐ’์ด๊ฑฐ๋‚˜ ๊ทธ ์ „์˜ ๊ฐ’์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 1963_์†Œ์ˆ˜ ๊ฒฝ๋กœ  (0) 2024.05.07
[Baekjoon] 1986_์ฒด์Šค  (0) 2024.05.03
[Baekjoon] 10157_์ž๋ฆฌ๋ฐฐ์ •  (0) 2024.05.01
[Baekjoon] 7490_0 ๋งŒ๋“ค๊ธฐ  (0) 2024.04.30
[Baekjoon] 18290_NM๊ณผ K (1)  (0) 2024.04.29