728x90
반응형
SW Expert Academy에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.
https://swexpertacademy.com/main/main.do
문제 : "ADCBBBBCABBCBDACBDCAACDDDCAABABDBCBCBDBDBDDABBAAAAAAADADBDBCBDABADCADC"와 같은 문자열이 주어지고, A는 4점, B는 3점, C는 2점, D는 1점이라고 할 때 문자열에 사용된 알파벳 점수의 총합을 map 함수와 람다식을 이용해 구하십시오.
input
output
184
생각나는대로 써 본 code
a="ADCBBBBCABBCBDACBDCAACDDDCAABABDBCBCBDBDBDDABBAAAAAAADADBDBCBDABADCADC"
a_list=list(a)
count=0
for i in a_list:
if i=="A":
count+=4
elif i=="B":
count+=3
elif i=="C":
count+=2
elif i=="D":
count+=1
print(count)
map함수와 람다식을 이용하지 않아도 pass할 수 있다. 리스트로 문자열을 따로따로 넣은다음 for문으로 count값에 가중치만큼 더하게하면 충분히 pass가 된다.
정답 code
a = "ADCBBBBCABBCBDACBDCAACDDDCAABABDBCBCBDBDBDDABBAAAAAAADADBDBCBDABADCADC"
a_list = list(a)
b = list(map(lambda x : ord('E') - ord(x) , a))
print(sum(b))
여기서 람다함수는 간편하게 함수를 만들어주는 역할을 해준다고 보면 되고 ord는 특정 문자를 아스키코드 값으로 변환해주는 함수이다. 그러므로 A,B,C... 각 간격이 1씩 차이나므로 여기서 나와있는 문자는 A,B,C,D이므로 문자 E를 사용하여 E-D, E-C, E-B, E-A값으로 점수화 시킨다. 그 후 전체값을 더하면 원하는 값을 얻을 수 있다.
반응형
'Programming > SWEA' 카테고리의 다른 글
[SWEA 6313].[파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 9. 내장함수 6 (0) | 2021.07.20 |
---|---|
[SWEA 6312].[파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 9. 내장함수 5 (0) | 2021.07.20 |
[SWEA 6308].[파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 9. 내장함수 1 (0) | 2021.07.19 |
[SWEA 6329].[파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 10 (0) | 2021.07.19 |
[SWEA 6328].[파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 9 (0) | 2021.07.19 |