내일배움캠프/Python

[Python]문자열을 한글자씩 리스트화 하기(list)/ 합치기(join), 정렬(sorted함수)

dydatablog 2024. 12. 19. 12:05
728x90

풀어볼 문제 :

20. 정수 내림차순으로 배치하기

문제 설명 : 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 

Step1) 문자열(string)을 한글자씩 끊어서 리스트화 하기 _ list

# 문자열(string)을 한글자씩 끊어서 리스트화 하기
def solution(n):
    list_n = list(str(n))
    return list_n
   
# 입력 : 118372
# 출력: ['1', '1', '8', '3', '7', '2']

 

Step2) 리스트를 내림차순으로 정렬하기 _ sorted

# 리스트를 내림차순으로 정렬하기 _ sorted
def solution(n):
    list_n = list(str(n))
    return (sorted(list_n,reverse=True))
    
#출력 : ['8', '7', '3', '2', '1', '1']

[리스트일 경우]

  • sorted(정렬할 데이터)
  • sorted(정렬할 데이터, reverse 파라미터) *(reverse = False 오름차순 / reverse = True 내림차순)

[딕셔너리일 경우]

  • sorted(정렬할 데이터, key 파라미터)
  • sorted(정렬할 데이터, key 파라미터, reverse 파라미터)

리스트.sort()와 sorted(리스트)의 차이:

리스트.sort() 는 본래의 리스트를 정렬해서 변환

sorted(리스트) 는 본래 리스트는 내버려두고, 정렬한 새로운 리스트를 반환

 

 

Step3) Join으로 리스트를 문자열로 변환

  • ''.join(리스트) : 

예시)

# arr = ['8', '7', '3', '2', '1', '1']

str = ''.join(arr)
print(str)

#출력: '873211'

 

  • '구분자'.join(리스트) : 

예시)

# arr = ['8', '7', '3', '2', '1', '1']

str = ','.join(arr)
print(str)

#출력: 8,7,3,2,1,1

 

문제에 사용 :

def solution(n):
    list_n = list(str(n))
    return ''.join(sorted(list_n,reverse=True))
    
#출력 : '873211'

 

Step4) int()로 정수형으로 변경

# 정답
def solution(n):
    list_n = list(str(n))
    return int(''.join(sorted(list_n,reverse=True)))
    
#출력 : 873211

 

 

 

 

참고 : https://blockdmask.tistory.com/573

 

[python] 파이썬 리스트를 문자열로 변환 하는 방법

안녕하세요. BlockDMask입니다. 오늘은 파이썬에서 리스트를 문자열로 변환하는 방법에 대해서 알아보려 합니다. 리스트 내에 문자들만 있는 경우나 숫자가 섞여있는 경우에 해당 리스트를 문자열

blockdmask.tistory.com

 

728x90

'내일배움캠프 > Python' 카테고리의 다른 글

[Python] 함수  (1) 2024.12.13
[Python]포맷팅_ { }, f-string  (0) 2024.12.13
[Python]for, while 반복문 연습문제  (0) 2024.12.11
[Python]리스트의 슬라이싱, 정렬  (1) 2024.12.09
[Python]함수의 매개변수  (0) 2024.11.22