Problem Solving/BOJ & Programmers

[BOJ] 4659๋ฒˆ: ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐœ์Œํ•˜๊ธฐ

geum 2024. 9. 21. 09:04

โœ๏ธ ๋ฌธ์ œ

์ข‹์€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋งŒ๋“œ๋Š”๊ฒƒ์€ ์–ด๋ ค์šด ์ผ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋“ค์€ buddy์ฒ˜๋Ÿผ ๋ฐœ์Œํ•˜๊ธฐ ์ข‹๊ณ  ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฌ์šด ํŒจ์Šค์›Œ๋“œ๋ฅผ ์›ํ•˜๋‚˜, ์ด๋Ÿฐ ํŒจ์Šค์›Œ๋“œ๋“ค์€ ๋ณด์•ˆ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์–ด๋–ค ์‚ฌ์ดํŠธ๋“ค์€ xvtpzyo ๊ฐ™์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ๋ถ€์—ฌํ•ด ์ฃผ๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์‚ฌ์šฉ์ž๋“ค์€ ์ด๋ฅผ ์™ธ์šฐ๋Š”๋ฐ ์–ด๋ ค์›€์„ ๋Š๋ผ๊ณ  ์‹ฌ์ง€์–ด๋Š” ํฌ์ŠคํŠธ์ž‡์— ์ ์–ด ์ปดํ“จํ„ฐ์— ๋ถ™์—ฌ๋†“๋Š”๋‹ค. ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ํ•ด๊ฒฐ๋ฒ•์€ '๋ฐœ์Œ์ด ๊ฐ€๋Šฅํ•œ' ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ์ ๋‹นํžˆ ์™ธ์šฐ๊ธฐ ์‰ฌ์šฐ๋ฉด์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ณ„์ •์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 

ํšŒ์‚ฌ FnordCom์€ ๊ทธ๋Ÿฐ ํŒจ์Šค์›Œ๋“œ ์ƒ์„ฑ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ๊ณ„ํš์ค‘์ด๋‹ค. ๋‹น์‹ ์€ ๊ทธ ํšŒ์‚ฌ ํ’ˆ์งˆ ๊ด€๋ฆฌ ๋ถ€์„œ์˜ ์ง์›์œผ๋กœ ์ƒ์„ฑ๊ธฐ๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ์ƒ์„ฑ๋˜๋Š” ํŒจ์Šค์›Œ๋“œ์˜ ํ’ˆ์งˆ์„ ํ‰๊ฐ€ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ๋†’์€ ํ’ˆ์งˆ์„ ๊ฐ€์ง„ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  1. ๋ชจ์Œ(a,e,i,o,u) ํ•˜๋‚˜๋ฅผ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
  2. ๋ชจ์Œ์ด 3๊ฐœ ํ˜น์€ ์ž์Œ์ด 3๊ฐœ ์—ฐ์†์œผ๋กœ ์˜ค๋ฉด ์•ˆ ๋œ๋‹ค.
  3. ๊ฐ™์€ ๊ธ€์ž๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ๋‘๋ฒˆ ์˜ค๋ฉด ์•ˆ๋˜๋‚˜, ee ์™€ oo๋Š” ํ—ˆ์šฉํ•œ๋‹ค.

 

์ด ๊ทœ์น™์€ ์™„๋ฒฝํ•˜์ง€ ์•Š๋‹ค;์šฐ๋ฆฌ์—๊ฒŒ ์นœ์ˆ™ํ•˜๊ฑฐ๋‚˜ ๋ฐœ์Œ์ด ์‰ฌ์šด ๋‹จ์–ด ์ค‘์—์„œ๋„ ํ’ˆ์งˆ์ด ๋‚ฎ๊ฒŒ ํ‰๊ฐ€๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค.

 

๐Ÿค– ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

 

๐Ÿง ๋‚œ์ด๋„/์†Œ์š” ์‹œ๊ฐ„

  • ๋‚œ์ด๋„: solved.ac ๊ธฐ์ค€ S5
  • ์†Œ์š” ์‹œ๊ฐ„: ์‹œ๊ฐ„ ์žฌ๋Š” ๊ฑฐ ๊นŒ๋จน์–ด์„œ ์ธก์ • X

 

๐Ÿ’กํ’€์ด

๋ฌธ์ œ ์•ˆ์— ์นœ์ ˆํ•˜๊ฒŒ ์ ํ˜€ ์žˆ๋Š” ์กฐ๊ฑด 3๊ฐœ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ฒ˜์Œ์— ์ € ์„ธ ์กฐ๊ฑด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ๊ฐ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ํ•˜๋‹ค ๋ณด๋‹ˆ๊นŒ ๋„ˆ๋ฌด ์ง€์ €๋ถ„ํ•ด์ ธ์„œ ๊ทธ๋ƒฅ ํ•œ ํ•จ์ˆ˜ ์•ˆ์— ์ˆœ์„œ๋Œ€๋กœ ๋„ฃ์–ด์คฌ๋‹ค.

 

์ˆœ์„œ ์•ˆ ๊ผฌ์ด๊ณ  ์ฐจ๊ทผ์ฐจ๊ทผ ํ•˜๋Š” ๊ฒŒ ํ•ต์‹ฌ์ธ ๋ฌธ์ œ์ธ ๋“ฏ

 

def is_acceptable(word):
    vowels = "aeiou"
    
    # 1. ๋ชจ์Œ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š”์ง€ ํ™•์ธ์šฉ
    has_vowel = False
    
    # 2. ๋ชจ์Œ ๋˜๋Š” ์ž์Œ์ด ์—ฐ์† 3๋ฒˆ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธ์šฉ
    vowel_check = 0
    consonant_check = 0
    
    # 3. ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฐ๋‹ฌ์•„ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธ์šฉ(ee, oo ์ œ์™ธ)
    prev_char = ""
    
    for char in word:
        if char in vowels:
            has_vowel = True
            
            vowel_check += 1
            consonant_check = 0
        else:
            vowel_check = 0
            consonant_check += 1
        
        if vowel_check == 3 or consonant_check == 3:
            return False

        if prev_char not in "eo" and prev_char == char:
            return False
        
        prev_char = char
        
    if not has_vowel:
        return False
    
    return True
    
while True:
    pw = input()
    
    if pw == "end":
        break
    
    if is_acceptable(pw):
        print(f"<{pw}> is acceptable.")
    else:
        print(f"<{pw}> is not acceptable.")