사용 언어 - Python3
문제 - 두 개 뽑아서 더하기
정답
단순 구현 (정답 맞춘 여부 O)
첫 번째 시도 => 테스트4,5 실패
1. numbers 리스트 원소들을 한개씩 확인하면서 두 값이 다르거나, 같더라도 원소 위치가 다르면 answer에 append 했다.
2. 모든 경우의 수를 다 더해준 answer를 set(중복제거&오름차순)하여 list로 변환후 출력
=> set 때문에 시간복잡도가 높아져 numbers 리스트가 큰 경우에 오류가 발생한 것 같다.
def solution(numbers):
answer = []
for i in range(0,len(numbers)):
for j in range(0,len(numbers)):
if numbers[i] != numbers[j] or (numbers[i] == numbers[j] and i != j):
answer.append(numbers[i] + numbers[j])
result = list(set(answer)) # 중복제거 , 오름차순
return result
2번째 시도 => 정답!
1. 애초에 answer를 append할 때 answer 안에 없는 경우에만 append하면서 중복을 제거했다.
2. answer.sort() 로 오름차순 정렬해주기
def solution(numbers):
answer = []
for i in range(0,len(numbers)):
for j in range(0,len(numbers)):
if numbers[i] != numbers[j] or (numbers[i] == numbers[j] and i != j):
n = numbers[i] + numbers[j]
if n not in answer: # 중복제거
answer.append(numbers[i] + numbers[j])
answer.sort() # 오름차순 정렬
return answer
레퍼런스
- 정답 깃허브
'Algorithm > 구현' 카테고리의 다른 글
[프로그래머스 lv 1] 크레인 인형뽑기 게임 (0) | 2023.05.23 |
---|---|
[프로그래머스 lv 1] 키패드 누르기 (0) | 2023.05.22 |
[프로그래머스 lv 1] 3진법 뒤집기 (1) | 2023.05.21 |
[프로그래머스 lv 1] 내적 (0) | 2023.05.21 |
[프로그래머스 lv 1] 음양 더하기 (0) | 2023.05.19 |
댓글