๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
4๏ธโƒฃ Python/Problem Solving

[Python Algorithm] ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก BOJ #5052

by seolhee2750 2022. 5. 24.
๋ฌธ์ œ

https://www.acmicpc.net/problem/5052

 

5052๋ฒˆ: ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ t๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ t ≤ 50) ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ n ≤ 10000) ๋‹ค์Œ n๊ฐœ์˜ ์ค„์—๋Š” ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€

www.acmicpc.net

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
import sys

t = int(sys.stdin.readline().strip())
for _ in range(t):
    n = int(sys.stdin.readline().strip())
    nums = []
    for _ in range(n):
        nums.append(sys.stdin.readline().strip())
    nums.sort()
    check = True

    for i in range(0, n-1):
        if nums[i] == nums[i+1][:len(nums[i])]:
            check = False
            break

    if check:
        print("YES")
    else:
        print("NO")

๐Ÿ‘‰ ๋ฌธ์ž์—ด ๋ฌธ์ œ

์ „ํ™”๋ฒˆํ˜ธ๋“ค์ด ์ €์žฅ๋œ nums ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•˜๋ฉด, ๋‹น์—ฐํ•˜๊ฒŒ๋„ ์ ‘๋‘์‚ฌ๊ฐ€ ๋น„์Šทํ•œ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ตณ์ด ์ „๋ถ€๋ฅผ ๋น„๊ตํ•ด์ฃผ์ง€ ์•Š์•„๋„, ์•ž๋’ค ๋ฒˆํ˜ธ๋ผ๋ฆฌ๋งŒ ๋น„๊ตํ•ด์ค˜๋„ ์ถฉ๋ถ„ํ•˜๋‹ค.

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ

์ฒ˜์Œ์—” 2์ค‘ for๋ฌธ์œผ๋กœ ์ผ์ผ์ด ๋น„๊ตํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด๋Ÿฐ ์ ‘๋‘์‚ฌ, ์ ‘๋ฏธ์‚ฌ ๋ฌธ์ œ๋“ค๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๋น„๊ต๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ๋ฐฉ๋ฒ•์„ ๋นจ๋ฆฌ ์ฐพ์•„์ฃผ๋Š”๊ฒŒ ์ค‘์š”ํ• ๋“ฏ ํ•˜๋‹ค.

๋Œ“๊ธ€