๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 9342_์—ผ์ƒ‰์ฒด

๋ฟŒ์•ผ._. 2024. 8. 27. 15:00
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/9342)

< ์—ผ์ƒ‰์ฒด >

 

๋ฌธ์ œ ํ’€์ด 

 

์ •๊ทœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ์ •๊ทœ ํ‘œํ˜„์‹์„ ์ฐพ์•„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ๋‹ค.

 

์ด ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉํ•œ ์ •๊ทœ ํ‘œํ˜„์‹ ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

^ : ์‹œ์ž‘
$ : ๋
[] : ๊ด„ํ˜ธ ์•ˆ์˜ ๋ฌธ์ž๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
- : ์‚ฌ์ด์˜ ๋ฌธ์ž ํ˜น์€ ์ˆซ์ž
? : ์•ž์˜ ํ‘œํ˜„์‹์ด 0 or 1๊ฐœ
+ : ์•ž์˜ ํฌํ˜„์‹์ด 1๊ฐœ ์ด์ƒ

 

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.regex.Pattern;

public class _9342_ { // ์—ผ์ƒ‰์ฒด

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

		int T = Integer.parseInt(bf.readLine());

		for (int i = 0; i < T; i++) {
			String str = bf.readLine();

			if (Pattern.matches("^[A-F]?A+F+C+[A-F]?$", str)) {
				bw.write("Infected!\n");
			} else {
				bw.write("Good\n");
			}
		}
		bw.flush();
	}
}

 

๋ณ€์ˆ˜)
T : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
str : ๋ฌธ์ž์—ด

 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋งŒํผ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ์ •๊ทœ ํ‘œํ˜„์‹๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 

๋ฌธ์ž์—ด ์‹œ์ž‘์ด {A, B, C, D, E, F} ์ค‘ 0๊ฐœ ๋˜๋Š” 1๊ฐœ์ด๋ฏ€๋กœ -> ^[A-F]?๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

๊ทธ๋‹ค์Œ A๊ฐ€ 1๊ฐœ ์ด์ƒ, F๊ฐ€ 1๊ฐœ ์ด์ƒ, C๊ฐ€ 1๊ฐœ ์ด์ƒ์ด๋ฏ€๋กœ -> A+F+C+๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ {A, B, C, D, E, F} ์ค‘ 0๊ฐœ ๋˜๋Š” 1๊ฐœ ์ด๋ฏ€๋กœ -> [A-F]?$๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

์ตœ์ข… ์ •๊ทœ ํ‘œํ˜„์‹ ^[A-F]?A+F+C+[A-F]?$์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.