๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/5052)
<์ ํ๋ฒํธ ๋ชฉ๋ก>
๋ฌธ์
์ ํ๋ฒํธ ๋ชฉ๋ก์ด ์ฃผ์ด์ง๋ค. ์ด๋, ์ด ๋ชฉ๋ก์ด ์ผ๊ด์ฑ์ด ์๋์ง ์๋์ง๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ํ๋ฒํธ ๋ชฉ๋ก์ด ์ผ๊ด์ฑ์ ์ ์งํ๋ ค๋ฉด, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด, ์ ํ๋ฒํธ ๋ชฉ๋ก์ด ์๋์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์
๊ธด๊ธ์ ํ: 911
์๊ทผ: 97 625 999
์ ์: 91 12 54 26
์ด ๊ฒฝ์ฐ์ ์ ์์ด์๊ฒ ์ ํ๋ฅผ ๊ฑธ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ ํ๊ธฐ๋ฅผ ๋ค๊ณ ์ ์์ด ๋ฒํธ์ ์ฒ์ ์ธ ์๋ฆฌ๋ฅผ ๋๋ฅด๋ ์๊ฐ ๋ฐ๋ก ๊ธด๊ธ์ ํ๊ฐ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์, ์ด ๋ชฉ๋ก์ ์ผ๊ด์ฑ์ด ์๋ ๋ชฉ๋ก์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ t๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ t ≤ 50) ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ์ ํ๋ฒํธ์ ์ n์ด ์ฃผ์ด์ง๋ค. (1 ≤ n ≤ 10000) ๋ค์ n๊ฐ์ ์ค์๋ ๋ชฉ๋ก์ ํฌํจ๋์ด ์๋ ์ ํ๋ฒํธ๊ฐ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ ํ๋ฒํธ์ ๊ธธ์ด๋ ๊ธธ์ด์ผ 10์๋ฆฌ์ด๋ฉฐ, ๋ชฉ๋ก์ ์๋ ๋ ์ ํ๋ฒํธ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด์, ์ผ๊ด์ฑ ์๋ ๋ชฉ๋ก์ธ ๊ฒฝ์ฐ์๋ YES, ์๋ ๊ฒฝ์ฐ์๋ NO๋ฅผ ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํ์ด
- ์ด๊ธฐ ์ฝ๋: ํ๋ ธ์ต๋๋ค
import sys
if __name__=='__main__':
t=int(input())
for i in range(t):
n=int(input())
arr=[]
min=10
minarr=[]
for j in range(n):
str=sys.stdin.readline().replace(' ','').strip()
arr.append(str)
if min>len(str):
min=len(str)
for j in range(n):
if len(arr[j])==min:
minarr.append(arr[j])
else:
arr[j]=arr[j][:min]
bool=False
for j in minarr:
if arr.count(j)>1:
bool=True
if bool==True:
print("NO")
else:
print("YES")
๋ฌธ์ ๋ฅผ ๋ณธ ํ ์ฝ๊ฒ ์์ ๊ฐ์ ์ฝ๋๋ฅผ ๊ตฌํํ์๋ค. ํ์ฐธ ๋์ ์๊ฐํด๋ ์ด์ ๋ฅผ ๋ชฐ๋ผ์ ๋ฉํ๋ ์์๋ค.
์ง๋ฌธ ๊ฒ์ ๊ฒ์ํ๊ณผ ๊ฒ์์ ํตํด ๋ค ๋ด๋ ์ฐพ์ ์ ์์๋ค.
์ฒ์์ ์ฐพ์ ์ด์ ๋ '97 625 999'์ ๊ฐ์ด ๊ณต๋ฐฑ ์ฒ๋ฆฌ ๋๋ฌธ์ด๋ผ๊ณ ํ์ฌ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ ํ ์ ์ถํด๋ดค์ง๋ง ๊ฒฐ๊ณผ๋ ๋๊ฐ์๋ค.
โ ์ ํ๋ ธ๋๊ฐ?
91123455
95
911
์ธ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ง ์์์๋ค. ๋ด๊ฐ ๊ตฌํํ ์ฝ๋๋ ์ ๋ ฅ๋ฐ์ ์ ํ๋ฒํธ ์ค ๊ธธ์ด๊ฐ ๊ฐ์ฅ ์งง์ ๊ฐ์ ๋ํด์๋ง ์ผ๊ด์ฑ์ด ์๋์ง ์๋์ง ํ์ธํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๋ถ๋ถ์ ์์์ฐจ๋ ธ์ ๋ '์' ๋ฐ์ ๋์ค์ง ์์๋ค.
- my solution
import sys
if __name__=='__main__':
t=int(input()) # ํ
์คํธ ์ผ์ด์ค ๊ฐ์
for i in range(t):
n=int(input()) # ์ ํ๋ฒํธ ์
arr=[]
for j in range(n):
str=sys.stdin.readline().replace(' ','').strip() # ์
๋ ฅ
arr.append(str)
arr.sort() # ์ ๋ ฌ
bool=False # ์ผ๊ด์ฑ check
for j in range(n-1):
if arr[j]==arr[j+1][:len(arr[j])]:
bool=True
if bool==True:
print("NO")
else:
print("YES")
์์์ ๋ฐ๊ฒฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๋ ฌ ํ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ ํํ์๋ค.
์ ๋ค๋ค ์ ๋ ฌํ๋์ง ๋ชฐ๋๋๋ฐ ์์ ์๋ชป๋ ์ด์ ๋ฅผ ์๊ณ ๋๋ ์ ๋ ฌ์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ฅผ ์ ์ ์์๋ค.
์ ๋ ฌ ํ arr[j] ๊ธธ์ด๋งํผ arr[j+1][:len(arr[j])]์ ๋น๊ตํ ํ ๊ฐ์ผ๋ฉด No๋ฅผ ์ถ๋ ฅํด์ค๋ค.
์๊ฐ๐ค
์ฌ๋ฌ๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1991_ํธ๋ฆฌ ์ํ (0) | 2022.03.07 |
---|---|
[Baekjoon] 6603_๋ก๋ (0) | 2022.03.03 |
[Baekjoon] 11726_2รn ํ์ผ๋ง (0) | 2022.03.01 |
[Baekjoon] 15988_1, 2, 3 ๋ํ๊ธฐ 3 (0) | 2022.02.28 |
[Baekjoon] 11660_๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (0) | 2022.02.22 |