버전 문자열 비교

2023. 12. 28. 17:14정보처리,전산/코딩 : 문제해결

반응형
input1 = '1.0'
input2 = '1.1.99'

array1 = input1.split('.')
array2 = input2.split('.')

for i in range(len(array1)):
    if int(array1[i])>int(array2[i]):
        print(input1+'>'+input2)
        break
    elif int(array1[i]) < int(array2[i]):
        print(input2+'>'+input1)
        break

숫자기호숫자기호 순서로 구분된 버전 비교

 

 

.을 기준으로 배열을 저장 

 

그러나 버전이 같을 때 버전 길이가 다를 떄는 비교가 되지않기 때문에

SAMPLE =[['0.1.0', '0.1.1'],
['1.1.4','1.1.3'],
['1.1.2','1.1'],
['1.11.1','1.11.1'],
['10.11.0', '10.10.99'],
['11.111111', '2.0.1']]

for i in SAMPLE:
    SplitX = i[0].split(".")
    SplitY = i[1].split(".")
    if SplitX > SplitY:
        print(i[0],'>',i[1])
    elif SplitX < SplitY:
        print(i[0],'<',i[1])
    else:
        print(i[0],'==',i[1])

 

run:

 

0.1.0 < 0.1.1
1.1.4 > 1.1.3
1.1.2 > 1.1
1.11.1 == 1.11.1
10.11.0 > 10.10.99
11.111111 < 2.0.1

 

 

 

입력을 받을 때

x=input('버전입력')
y=input('비교버전입력')
if x==y:
    print(x, '==',y)
else:
    splitX=x.split('.')
    splitY=y.split('.')
    if len(splitX)<len(splitY):
        rangelen=len(splitX)
    else:
        rangelen= len(splitY)
    for i in range(rangelen): #짧은 길이 만큼 순회
        if splitX[i]>splitY[i]:
            print(x,'>',y)
            break
        elif splitX[i] <splitY[i]:
            print(x,'<',y)
            break
반응형