[Python] 문자와 숫자가 섞인 데이터 정렬하기 - Kyeom

2022. 10. 21. 18:49Python/문제풀이

728x90

◉. 16진수 수를 랜덤으로 받아서 오름차순으로 정렬해보자!


알고 있어야 하는 내용

  1. 함수정의 / def getNum()
  2. 반복문 / for문
  3. 리스트 / [ ]
  4. 16진수 / hex
  5. .isdigit() / 숫자로만 구성되어 있는지 확인

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import random
from webbrowser import get
 
def getNum(strData):
    numStr = ''
    for ch in strData:
        if ch.isdigit():
            numStr += ch
    return int(numStr)
 
data = []
 
for i in range(10):
    tmp = hex(random.randrange(100000))
    tmp = tmp[2:]
    data.append(tmp)
 
print(f"정렬 전 데이터 : {data}")
 
for i in range(len(data)-1):
    for k in range(i+1len(data)):
        if getNum(data[i]) > getNum(data[k]):
            data[i], data[k] = data[k], data[i]
print(f"정렬 후 데이터 : {data}")
cs

4~9번줄) 숫자와 문자로 섞여 있는 16진수를 숫자만 뽑는 함수다.

    5번줄) numStr을 문자열로 선언(숫자도 문자로 인식해서 저장 가능!)

    8번줄) ch가 숫자로만 이루어져있다면 numSrt에 저장!

               ch는 strData의 값 한 자 한 자 확인한 다음 return을 통해서 값을 내보낸후 다음 숫자를 확인한다.

13번줄) 16진수를 랜덤으로 불러온다!

20번줄) 4번줄에서 만든 함수를 써보자! 앞에 값(i)과 뒤에 값(k)를 비교한 후 더 크다면 23번줄 코드를 통해서 값의 자리를 바꿔준다! 


결과

사실 아직 이해를 완벽하게 하지 못한 상태라서 이해가 안 될수도 있습니다

나름 이해한 대로 적었으니 양해를 바랍니다ㅠ 나중에 수정 할 수 있으면 보충하겠습니다.

728x90