Updated:

๐Ÿ–๏ธย solution

import sys

"""
[์‹œ๊ฐ„]
1) 15:20 ~ 16:00

[์š”์•ฝ]
1) ์ฃผ์–ด์ง„ ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์„ ๋ณด๊ณ , ์ผ๊ด€์„ฑ์ด ์—ฌ๋ถ€ ํŒ๋‹จ
    - ํ•˜๋‚˜์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด X
    - ์ฃผ์–ด์ง„ ๋ชจ๋“  ๋ฒˆํ˜ธ์— ๋™์ผํ•˜๊ฒŒ ์—ฐ๋ฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ์ผ๊ด€์„ฑ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ
[์ „๋žต]
1) ์ „ํ™”๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ๋ฅผ ์ตœ์šฐ์„  ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
    - ์‹œ๊ฐ„ ์ œํ•œ & ์ž…๋ ฅ์˜ ๊ธธ์ด: ์ด์ค‘ ๋ฃจํ”„ ์ปค๋ฒ„ ๋ถˆ๊ฐ€๋Šฅ
    - ์ˆซ์ž์ฒ˜๋Ÿผ ์ƒ๊ธด '๋ฌธ์ž์—ด'์„ ์ •๋ ฌ, ๊ธธ์ด์™€ ๊ด€๊ณ„ ์—†์ด ์ž๋ฆฌ์ˆ˜์— ์ฑ„์›Œ์ง„ ์ˆซ์ž๊ฐ€ ๋น„์Šทํ•œ ๋ฒˆํ˜ธ๋ผ๋ฆฌ ๋ญ‰์นจ
        => ๊ทธ๋ž˜์„œ ๊ตณ์ด ์ด์ค‘ ๋ฃจํ”„๋ฅผ ์ด์šฉํ•ด ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†์Œ
        => ์• ์ดˆ์— ๋น„์Šทํ•œ ๊ฒƒ๋ผ๋ฆฌ ๋ญ‰์ณ ์žˆ๋Š” ์ƒํƒœ๋ผ์„œ, local optimal ~ global optimal ๊ธฐ๋Œ€ ๊ฐ€๋Šฅ
        => ๋‹ค๋งŒ, ๊ธธ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๊ฒŒ ์•„๋‹ˆ๋ผ์„œ, ์Šฌ๋ผ์ด์‹ฑ ๊ธฐ์ค€์„ ๊ธธ์ด๋กœ ์ •ํ•ด ์ค˜์•ผ ํ•œ๋‹ค.
"""
for _ in range(int(sys.stdin.readline())):
    checker, result = False, 'YES'
    num_list = [sys.stdin.readline().rstrip() for _ in range(int(sys.stdin.readline()))]
    num_list.sort()

    for i in range(0, len(num_list)-1):
        if num_list[i][:min(len(num_list[i]), len(num_list[i+1]))] == num_list[i+1][:min(len(num_list[i]), len(num_list[i+1]))]:
            print('NO')
            checker = True
            break

    if not checker:
        print(result)

๐Ÿ’กย idea

  • 1) ์ „ํ™”๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ๋ฅผ ์ตœ์šฐ์„  ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
    • ์‹œ๊ฐ„ ์ œํ•œ & ์ž…๋ ฅ์˜ ๊ธธ์ด: ์ด์ค‘ ๋ฃจํ”„ ์ปค๋ฒ„ ๋ถˆ๊ฐ€๋Šฅ
    • ์ˆซ์ž์ฒ˜๋Ÿผ ์ƒ๊ธด โ€˜๋ฌธ์ž์—ดโ€™์„ ์ •๋ ฌ, ๊ธธ์ด์™€ ๊ด€๊ณ„ ์—†์ด ์ž๋ฆฌ์ˆ˜์— ์ฑ„์›Œ์ง„ ์ˆซ์ž๊ฐ€ ๋น„์Šทํ•œ ๋ฒˆํ˜ธ๋ผ๋ฆฌ ๋ญ‰์นจ
      • ๊ทธ๋ž˜์„œ ๊ตณ์ด ์ด์ค‘ ๋ฃจํ”„๋ฅผ ์ด์šฉํ•ด ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†์Œ
      • ์• ์ดˆ์— ๋น„์Šทํ•œ ๊ฒƒ๋ผ๋ฆฌ ๋ญ‰์ณ ์žˆ๋Š” ์ƒํƒœ๋ผ์„œ, local optimal ~ global optimal ๊ธฐ๋Œ€ ๊ฐ€๋Šฅ
      • ๋‹ค๋งŒ, ๊ธธ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๊ฒŒ ์•„๋‹ˆ๋ผ์„œ, ์Šฌ๋ผ์ด์‹ฑ ๊ธฐ์ค€์„ ๊ธธ์ด๋กœ ์ •ํ•ด ์ค˜์•ผ ํ•œ๋‹ค.

๋ฌด์ง€์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋˜ ์ •๋ ฌ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ƒ๊ฐํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ๊ฐ€ ๋œ ๋ฌธ์ œ๋‹ค. ํ•„์ž๋Š” ์ฒ˜์Œ ์ด ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•  ๋•Œ, ์ •๋ ฌํ•˜๋Š” ๋Œ€์ƒ์„ ์ˆซ์ž๋ผ๊ณ  ์˜ค์ธํ•ด key=len ์„ ์‚ฌ์šฉํ•ด ์ •๋ ฌ์„ ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฌด์กฐ๊ฑด ์ด์ค‘ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ๋งŒ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ์— ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค.

๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฌ๊ณ  ๋‚˜์„œ ์ƒ๊ฐ์„ ํ•ด๋ณด๋‹ˆ, ์ •๋ ฌํ•˜๋Š” ๋Œ€์ƒ์€ ์‹ค์ œ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ โ€˜์ˆซ์ž์ฒ˜๋Ÿผ ์ƒ๊ธดโ€™ ๋ฌธ์ž์—ด์ด๋‹ค. ์ด ์ ์„ ์ž˜ ์ด์šฉํ•˜๋ฉด, ์•ž์ž๋ฆฌ์˜ ์ˆซ์ž๊ฐ€ ๋น„์Šทํ•œ ๊ฒƒ๋ผ๋ฆฌ ๋ญ‰์น˜๊ฒŒ ์ •๋ ฌ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ตณ์ด ์ด์ค‘๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ , ๋ฐ”๋กœ ์˜† ์›์†Œ์™€ ๋Œ€์กฐ๋งŒ ํ•ด๋„ global optimal์„ ๊ธฐ๋Œ€ํ•ด๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๊ธธ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šฌ๋ผ์ด์‹ฑ ๊ธฐ์ค€์„ min()์„ ์ด์šฉํ•ด ๋” ์งง์€ ๋ฌธ์ž์—ด๋กœ ์‚ผ์•„์ค˜์•ผ ํ•œ๋‹ค.

Leave a comment