@마크다운
로켓펀치를 돌아다니다 재밌는 예제를 보았다.
```
ab2v9bc13j5jf4jv21
```
이러한 문자열이 있을 때 홀수인 숫자만 제곱하여 더한 값을 출력하라는 것이었다.
처음 봤을땐 정규식으로 숫자만 뽑고 %2하면 되겠구나 했다.
> &1 가 %2보다 월등히 빠르지가 않다. 이상하다... 파이썬이라 그런가?
아무튼 %2로 홀짝을 구분해보려다 정규식으로 홀수만 추출을 한다면 더 간단하지 않을까 해서 정규식을 열심히 찾았다.
```
def find_odd_number(text):
result = sum([int(i) ** 2 for i in re.findall('[0-9]*[13579]', text)])
return result
```
앞자리가 숫자인경우를 찾고 *를 사용하여 반복시켰다.
뭔가 쉬우면서도 빡치는... 재밌는 문제였다
'algorithm' 카테고리의 다른 글
tryhelloworld Lv1. 자릿수더하기 (1) | 2017.09.10 |
---|---|
tryhelloworld Lv1. 제일 작은 수 제거하기 (0) | 2017.08.29 |
tryhelloworld LV1. 짝수와 홀수 (0) | 2017.08.29 |
tryhelloworld Lv1. 평균구하기 (0) | 2017.08.28 |
try helloworld Lv1. x만큼 간격이 있는 숫자 (0) | 2017.08.23 |