👉 오늘 한 일
프로그래머스 문제풀이
1. 음양 더하기
- lv 1, 정답률 83%
- 만약 signs 이 false라면 absolutes에서 같은 인덱스의 숫자를 마이너스로 바꾸고 더해줌
def solution(absolutes, signs):
for i in range(len(absolutes)):
if signs[i] == False:
absolutes[i] = -absolutes[i]
return sum(absolutes)
- 다른 사람 풀이
- zip을 활용하면 두 리스트를 비교할 수 있음
def solution(absolutes, signs):
return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs))
2. 제일 작은 수 제거하기 💡
- 프로그래머스 lv 1, 제일 작은 수 제거하기
- lv 1, 정답률 83%
- remove로 리스트에서 제일 작은 값을 제거하고 if문으로 제거 뒤 리스트가 비었는지 확인
- 이 문제의 모든 케이스에 대해 통과했지만 이 답은 가장 작은 값이 여러 개일 때 통과하지 못함..!
def solution(arr):
arr.remove(min(arr))
if arr == []:
arr.append(-1)
return arr
- 다른 사람 풀이
- 이렇게 풀면 가장 작은 값이 여러 개일 때도 통과할 수 있음
def solution(arr):
return [i for i in arr if i > min(arr)] or [-1]
3. 없는 숫자 더하기
- lv 1, 정답률 83%
- numbers를 문자열 리스트로 만든 후, 문자열 0~9와 비교하며 remove 하는데 에러가 발생하면 빈 리스트 result 에 해당 값을 더해줌. for문을 빠져나와 리스트 result의 요소들을 더해줌
def solution(numbers):
lst = [str(n) for n in numbers]
result = []
for c in "0123456789":
try:
lst.remove(c)
except:
result.append(c)
return sum([int(i) for i in result])
def solution(numbers):
return 45 - sum(numbers)
solution = lambda x: sum(range(10)) - sum(x)