<로직 고민>
# 음...문자형인 숫자를 숫자로 판별하는 함수가 있나...?
# 배열에서 인덱스마다 뽑았을 때 int로 형변환이 되면 숫자 안 되면 문자...?
def solution(my_string):
answer = []
for i in my_string:
if int(i) != ValueError:
answer.append(i)
else:
continue
answer.sort()
return answer
# 출력화면
# ValueError: invalid literal for int() with base 10: 'h'
- 음 이런 건 안 되는구나~
- 구글링 해보니까 re 모듈을 쓰면 findall함수를 써서 문자열 내에서 원하는 값을 찾을 수 있다고 한다!
(4/5) 이때 사실 힌트 보고 findall을 쓰네 검색해봐야겠다 가 원래 생각회로였다...내가 구글링해서 찾은 건 사실 isdigit()이었는데 이 문제에 어떻게 활용해야 할지 생각이 안 나서 힌트 보고 뭐...그런 거였다...
<완성한 코드>
import re
def solution(my_string):
answer = []
number = re.findall('\d', my_string)
number.sort()
for num in number:
answer.append(int(num))
return answer
my_string1 = "hi12392"
my_string2 = "p2o4i8gj2"
my_string3 = "abcde0"
print(solution(my_string1))
print(solution(my_string2))
print(solution(my_string3))
# 출력화면
# [1, 2, 2, 3, 9]
# [2, 2, 4, 8]
# [0]
- 사실 findall을 알고도 한 번에 바로 맞추진 못해서 힌트를 슬쩍 봤다,,,ㅎㅎㅎ,,,,,,
<다른 사람 풀이>
- 천재풀이1
def solution(my_string):
return sorted([int(c) for c in my_string if c.isdigit()])
- 이게 뭐람........
- 처음에 숫자인지 판별하는 함수가 있나 했는데 그게 isdigit같다
- 문자열 하나하나 보면서 숫자면 int로 형변환해주고 정렬하는 것 같다 근데 그게 바로바로 저장이 되는구나 신기하넹 알다가도 모를 코딩의 세계...
- 천재풀이2
def solution(my_string):
answer = []
for i in my_string:
if i.isdigit():
answer.append(int(i))
else:
pass
sorted_answer = sorted(answer)
return sorted_answer
- 오늘(4/5) 페어프로그래밍 했는데 팀원분이랑 같이 푼 문제다
- isdigit()은 내가 구글링 해서 찾았는데 왜 혼자할 땐 이걸 못 썼지?
- 그때도 isdigit()을 찾긴 했는데 어떻게 활용해야 할지 모르겠어서 결국 힌트를 봤던 거였다
- 3월 31일의 나보다 4월 5일의 나는 더 성장해서 그런가보다~ 그땐 뭘 알아도 쓰질 못하는 상태였는데 지금은 아니까 쓸 수 있는 상태 ㅎㅎ...뿌듯!