문제)
"ADCBBBBCABBCBDACBDCAACDDDCAABABDBCBCBDBDBDDABBAAAAAAADADBDBCBDABADCADC"와
같은 문자열이 주어지고, A는 4점, B는 3점, C는 2점, D는 1점이라고 할 때 문자열에 사용된
알파벳 점수의 총합을 map 함수와 람다식을 이용해 구하십시오.
입력 : 입력 없음
출력 : 184
풀이)
1
2
3
4
|
a = "ADCBBBBCABBCBDACBDCAACDDDCAABABDBCBCBDBDBDDABBAAAAAAADADBDBCBDABADCADC"
a = list(map(str, a))
b = list(map(lambda x : ord('E') - ord(x), a))
print(sum(b))
|
cs |
주어진 문자열을 map()을 이용해 변수 a에 리스트의 형태로 넣는데 까지는 할만 했지만
이후 lambda함수를 사용해 각 문자열을 점수로 변환하는 것은 아무리 생각해도 생각나지 않았다.
그래서 구글의 힘을 좀 빌려왔다.
다른 분의 코드에서는
아스키코드의 A, B, C, D, E의 크기는 모두 차이가 1씩 나기 때문에
이를 이용하여 제일 큰 아스키 코드인 'E'에서 각 문자를 아스키 코드로 변환한 값을 빼,
점수화 시킨 후 이를 더하는 방법을 사용했다.
문제 출처 : https://swexpertacademy.com/main/main.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
※ SW Expert 아카데미는 원칙적으로 문제를 무단 복제하는 것을 금지합니다.
학습용으로 문제를 가져왔으나, 문제가 될 시 수정 및 삭제하겠습니다.
'Develop > Python + SWEA' 카테고리의 다른 글
[SW Expert Academy] 6203. 객체지향 1 (0) | 2022.01.06 |
---|---|
[SW Expert Academy] 6276. 자료구조 - 리스트, 튜플 3 (0) | 2022.01.05 |
[SW Expert Academy] 6308. 내장함수 1 (0) | 2022.01.04 |
[SW Expert Academy] 6320. 함수의 기초 2 (0) | 2022.01.04 |
[SW Expert Academy] 6319. 함수의 기초 1 (0) | 2022.01.04 |