https://programmers.co.kr/learn/courses/30/lessons/68644
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(len(numbers)):
if i != j:
answer.append(numbers[i] + numbers[j])
answer = sorted(set(answer))
return list(answer)
1) 중첩 for loop
test_list = [1,2,3]
for i in range(len(test_list)):
for j in range(len(test_list)):
print('1 - i : ', test_list[i])
print('2 - j : ', test_list[j])
# 출력
1 - i : 1
2 - j : 1
1 - i : 1
2 - j : 2
1 - i : 1
2 - j : 3
1 - i : 2
2 - j : 1
1 - i : 2
2 - j : 2
1 - i : 2
2 - j : 3
1 - i : 3
2 - j : 1
1 - i : 3
2 - j : 2
1 - i : 3
2 - j : 3
1) list, append, dictionary 시도
def solution(numbers):
answer = []
result = {}
for i in range(len(numbers)):
for j in range(len(numbers)):
answer.append(numbers[i] + numbers[j])
# answer = sorted(answer)
for m in zip(answer):
if m not in result:
result[m] = 1
else:
result[m] = result[m] + 1
print(result)
print(solution([2,1,3,4,1]))
# 출력
{(4,): 5, (3,): 4, (5,): 6, (6,): 3, (2,): 4, (7,): 2, (8,): 1}
None
2) set, list 변환, 중복
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(len(numbers)):
answer.append(numbers[i] + numbers[j])
answer = set(answer)
answer = list(answer)
return answer
# 출력
입력값 〉 [2, 1, 3, 4, 1]
기댓값 〉 [2, 3, 4, 5, 6, 7]
실행 결과 〉 실행한 결괏값 [2,3,4,5,6,7,8]이(가) 기댓값 [2,3,4,5,6,7]와(과) 다릅니다.
테스트 2
입력값 〉 [5, 0, 2, 7]
기댓값 〉 [2, 5, 7, 9, 12]
실행 결과 〉 실행한 결괏값 [0,2,4,5,7,9,10,12,14]이(가) 기댓값 [2,5,7,9,12]와(과) 다릅니다.
3) 세 번째 실패
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(len(numbers)):
if i != j:
answer.append(numbers[i] + numbers[j])
answer = set(answer)
answer = list(answer)
return answer
if i != j:
코드를 추가하여 해결해 보려고 하였다. 그렇게 하니 테스트케이스는 통과가 되었지만, 테스트 4, 5번이 해결이 되지 않았다!4) 최종 해결.. 3번과 별로 다르지 않다.
1) 중첩 for loop 공부 보충하기
2) 문제 난이도에 비해 시간을 너무 많이 썼다.