1.없는 숫자 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/86051
# 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다.
# numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성
def solution(numbers):
list=range(10) # 0~9가 들어있는 리스트 만들기
sum=0
for i in list:
if i not in numbers:
sum=sum+i
return sum
numbers=[1,2,3,4,6,7,8,0]
print(solution(numbers))
"""새롭게 알게된거
1. 여러개 들어있는 리스트 만들려면
=>range()사용하기
2. for하고 if 같이 써야할떄는
=>for 먼저 쓰기
3. 리스트에 존재하는지 확인하는 방법?
=>if i in list: 또는 if i not in list:
4. 연산 sum=+i 는 sum=sum+i 와 같나?
=>아니! sum+=i랑 같음
"""
다른사람풀이(2개만 공부)
1. 단순한 합이니까 이런 접근도 가능
def solution(numbers):
return 45 - sum(numbers)
solution = lambda x: sum(range(10)) - sum(x)
# 네오와 프로도가 숫자놀이를 하고 있습니다.
# 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
# 영어를 다 숫자로 바꾸기
def solution(s):
s = s.replace('zero','0')
s = s.replace('one','1')
s = s.replace('two','2')
s = s.replace('three','3')
s = s.replace('four','4')
s = s.replace('five','5')
s = s.replace('six','6')
s = s.replace('seven','7')
s = s.replace('eight','8')
s = s.replace('nine','9')
s=int(s)
return s
s="one4seveneight"
print(solution(s))
'''
사고흐름 짜기
a 방안 (안녕~~)
1. 문자열과 숫자 혼합된 것을 리스트로 쪼개기
=>방법? 없는듯
2. 딕셔너리사용해서 키에 맞는 벨류로 바꾸기
3. 리스트를 다시 숫자로 변경
b 방안
1, 특정문자를 다른문자로 변경하기
- 방안1 replace는 한개는 괜찮은데 여러개를 쓰기에는 무리 x
- 방안2 str.maketrans() 사용 ->원래문자와 바꿀문자의 길이가 같아야 사용가능하기에 부적합
- 방안3 re.findall함수? 이 함수도 공백이나 특정 조건에 의해서만 리스트로 만드는거임 부적합
c 방안
1. 딕셔너리로 일단 전부 선언
2. 딕셔너리에 있는걸로 변경
딕셔너리 : 키를 기반으로 값을 저장
- {key,value}
d 방안
하나하나 모든걸 replace로 각각 적용
def solution(s):
s = s.replace('zero','0')
s = s.replace('one','1')
s = s.replace('two','2')
s = s.replace('three','3')
s = s.replace('four','4')
s = s.replace('five','5')
s = s.replace('six','6')
s = s.replace('seven','7')
s = s.replace('eight','8')
s = s.replace('nine','9')
s=int(s)
return s
s="one4seveneight"
print(solution(s))
'''
'''
새롭게 알아가는 거
1.딕셔너리
'''
다른사람풀이
1.
num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
def solution(s):
answer = s
for key, value in num_dic.items():
answer = answer.replace(key, value)
return int(answer)
배워갈거
-for key, value in 딕셔너리.items(): 의미
반복할때 key와 value를 모두 사용하겠다.
-for 아래 말은 answer의 키 부분을 value로 변경하겠다는 의미
def solution(s):
words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
for i in range(len(words)):
s = s.replace(words[i], str(i))
return int(s)
배워갈거
-replace에서 리스트를 뽑아서 대치시킨다라는 발상도 가능하구나