728x90
반응형
엘리스코딩 파이썬 기초2 실력 확인 테스트 4번 문제 정답
<문제>
정렬 덧셈 - 도도새는 10진법에서 사용 가능한 새로운 연산자 @ 을 만들어 사용해보려 합니다.
연산자 @ 은 연산자 앞뒤의 피연산자를 자릿수별로 오름차순 정렬해 더한 결과를 자릿수별로 내림차순 정렬합니다.
예를 들어 412 @ 524 를 연산하면
1) 412를 자릿수별로 오름차순 정렬합니다: 124
2) 524를 자릿수별로 오름차순 정렬합니다: 245
3) 과정 1과 2에서 정렬한 두 수의 합을 구합니다: 369
4) 369를 자릿수별로 내림차순 정렬합니다: 963
결과는 963이 됩니다.
지시사항을 참고하여 프로그램을 작성하여 도도새의 테스트를 도와주세요.
1. 저는 문제를 보자마자 열받아서 꺼버렸는데 침착하게 문제를 이해해봅니다.
2. "abc @ def" 를 input() 으로 입력받은 다음, " @ " 를 기준으로 .split() 해서 두개의 문자열을 리스트 형식으로 받는다.
3. 두 문자열을 각각의 변수에 넣어준다. (type: list)
4. .sort() 메서드를 이용해 오름차순 정렬
※ 숫자(int) / 문자열(str)로 처리할 부분을 나눠서 생각해야 하고, 상황에 따라 int ↔ str, list ↔ str 변환시켜줍니다.
5. 오름차순 정렬한 리스트형 자료형을 합치고(join) 숫자로 바꿔준다(int).
6. 아직까지 리스트 내림차순 정렬을 안배웠으므로 먼저 오름차순으로 정렬한 후 새로운 변수에 역순으로 담아준다.
※ 더 나은 방법이 있을 수 있습니다.
dodo = input()
dodo = dodo.split(' @ ')
a = list(dodo[0])
b = list(dodo[1])
c = []
a.sort()
b.sort()
a_num = int(''.join(a))
b_num = int(''.join(b))
c = a_num + b_num
c_list = list(str(c))
c_list.sort()
i=0
ans=[]
for i in range(len(c_list)):
ans.append(c_list[len(c_list)-i-1])
i = i+1
ans_num = int(''.join(ans))
print(ans_num)
728x90
반응형
'공부 > 파이썬' 카테고리의 다른 글
[Python] 엘리스코딩 파이썬 기초2 실력 확인 테스트 정답 (5) (3) | 2023.05.16 |
---|---|
[Python] 엘리스코딩 파이썬 기초2 실력 확인 테스트 정답 (3) (0) | 2023.05.16 |
[Python] 엘리스코딩 파이썬 기초2 실력 확인 테스트 정답 (2) (0) | 2023.05.16 |
[Python] 엘리스코딩 파이썬 기초2 실력 확인 테스트 정답 (1) (0) | 2023.05.16 |
[Python] 엘리스코딩 파이썬 기초1 실력 확인 테스트 정답 (5) (0) | 2023.05.15 |