n=118372
str(n)
print(str(n)[2])
n은 정수로 주어지기에 이전에 풀어본것 처럼 리스트로 만들어서 순서대로 정렬한뒤 10의 단위를 곱해서 더해주면 된다고 접근을 시작함
list_a=[1,3,7,4,2,3]
list_a.sort()
print(list_a)
print(list_a[-1])
print(list_a[-3])
print(list_a[-6])
print(list_a[0])
리스트에서 각 요소를 뽑아내는데 i번째 자리라고 한다면 일의 자리는 10**(i-1) 이 되고 이러한 규칙성을 찾았을때
0이 아니라 -1 -2 -3 -4 -5 -6 으로 접근하면 각 단위별로 10승으로 표현이 가능하다고 판단함
def solution(n):
answer=[]
for i in range(0,5):
answer.append(str(n)[i])
answer.sort(reverse=True)
return answer
print(solution(118372))
for문을 돌려 리스트를 뽑아 보니 이게 문자형 이라서 곱하기 더하기가 안되네......?
찾아보니 map 함수를 쓰면 굳이 for문 돌리기 않고도 리스트르 뽑아내는게 가능하단걸 알았음
n=118372
list_n=list(map(int,str(n)))
list_n.sort(reverse=True)
print(list_n)
def solution(n):
list_n = list(map(int, str(n)))
list_n.sort(reverse=True)
answer=0
for i in range(1, len(str(n))+1):
answer=answer+list_n[-i]*10**(i-1)
return answer
오래도 걸렸다 후
'Python 연습문제' 카테고리의 다른 글
두 정수 사이의 합 (1) | 2024.06.12 |
---|---|
하샤드 수 (0) | 2024.06.11 |
[고민문제]정수 제곱근 판별 : 있는걸 활용하자 (0) | 2024.06.10 |
[고민문제]자연수 뒤집어 배열로 만들기 (쉬운길을 두고 돌아가지 말자) (0) | 2024.06.10 |
Lv3. 단어 맞추기 게임 (0) | 2024.05.28 |