๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ์˜น์•Œ์ด (2)

๋ฟŒ์•ผ._. 2026. 5. 20. 12:02
๋ฌธ์ œ
https://school.programmers.co.kr/learn/courses/30/lessons/133499
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 


< ์˜น์•Œ์ด (2) >

 

๋ฌธ์ œ ํ’€์ด (Java)

class Solution {
	public int solution(String[] babbling) {
		int answer = 0;

		for (int i = 0; i < babbling.length; i++) {
			String str = babbling[i];

			int idx = 0;
			char x = ' ';
			while (idx < str.length()) {
				if (str.charAt(idx) == 'a' && x != 'a') {
					if (idx + 2 < str.length() && str.substring(idx, idx + 3).equals("aya")) {
						idx += 3;
						x = 'a';
					} else {
						break;
					}
				} else if (str.charAt(idx) == 'y' && x != 'y') {
					if (idx + 1 < str.length() && str.substring(idx, idx + 2).equals("ye")) {
						idx += 2;
						x = 'y';
					} else {
						break;
					}

				} else if (str.charAt(idx) == 'w' && x != 'w') {
					if (idx + 2 < str.length() && str.substring(idx, idx + 3).equals("woo")) {
						idx += 3;
						x = 'w';
					} else {
						break;
					}

				} else if (str.charAt(idx) == 'm' && x != 'm') {
					if (idx + 1 < str.length() && str.substring(idx, idx + 2).equals("ma")) {
						idx += 2;
						x = 'm';
					} else {
						break;
					}
				} else {
					break;
				}
			}
			if (idx == str.length()) {
				answer += 1;
			}
		}
		return answer;
	}
}

 

"aya", "ye", "woo", "ma"๋กœ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๋ฉฐ "a", "y", "w", "m"์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. "a", "y", "w", "m"๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์ด์ „์— ๊ฐ™์€ ๋ฐœ์Œ์ด ์•„๋‹ˆ์—ˆ๋‹ค๋ฉด "aya", "ye", "woo", "ma"๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ๋งž๋‹ค๋ฉด ์ธ๋ฑ์Šค๋ฅผ ๋ฌธ์ž์—ด ๊ธธ์ด๋งŒํผ ๋„˜๊ธฐ๊ณ  ์ด์ „ ๋‹จ์–ด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ ์ด ๊ณผ์ •์„ ์ธ๋ฑ์Šค๊ฐ€ ๋ฌธ์ž์—ด ๋๊นŒ์ง€ ์˜ฌ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ด ๋ชจ๋“  ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋‹ค๋ฉด answer+1์„ ํ•˜๊ณ , ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋‹ค๋ฉด ๋ฐœ์Œํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์–ด์ด๋ฏ€๋กœ ๋„˜์–ด๊ฐ„๋‹ค. 

 

์ตœ์ข… answer์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.



 

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, 
https://school.programmers.co.kr/learn/challenges