https://www.acmicpc.net/problem/2179
n=int(input())
arr=[]
for i in range(n):
arr.append(input())
answerMaxLength=0
answerTwoWord=[]
for i in range(n):
for j in range(i+1,n):
s1=arr[i]
s2=arr[j]
minL=min(len(s1),len(s2))
maxL=0
length=0
for k in range(minL):
if s1[k]!=s2[k]:
maxL=max(maxL,length)
break
else:
length+=1
if length==minL:
maxL=max(maxL,length)
if answerMaxLength<maxL:
answerTwoWord=[s1,s2]
answerMaxLength=maxL
for i in range(2):
print(answerTwoWord[i])
앞 자리부터 가장 같은 문자의 길이가 가장 긴 단어 중 앞에서 두 단어를 고르는 문제이다. 말그대로 앞에서부터 두 단어를 고르면서 앞자리부터 몇자리나 같은지 비교하고 그 길이가 최대가 될 때만 갱신해주면 된다. 그렇게 되면 자동으로 가장 길면서 가장 앞에 있는 것 두 개로 골라진다.
이렇게 Python으로 백준의 "비슷한 단어" 문제를 해결해보았습니다. 코드와 개념 설명을 참고하여 문제를 해결하는 데 도움이 되셨길 바랍니다! 😊