프로그래머스_Python_오답노트_약수 구하기_중복제거 set()의 사용 정리.

HEE·2025년 3월 27일
0
post-thumbnail

1. 프로그래머스 python 코딩테스트 입문

Level 0. 약수 구하기

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

정답 확인

1. 차근차근

def solution(n):
    answer = []
    for i in range(1,n+1):
        if n%i == 0:
            answer += [i]
    return sorted(answer)
  • answer = ''는 문자열 선언!
    += [리스트] 는 타입이 달라서 안됨 - answer = [ ] 리스트 선언
  • .sort() : 제자리에서 오름차순 - return 값 none
    리스트에서만 사용 가능. '내 리스트 그냥 지금 정렬해!'
  • sorted(리스트) : 새 리스트 반환 - return 값 정렬된 리스트 리스트, 집합, 문자열 모두 사용 가능. '정렬된 결과 따로 저장해서 쓸거야!

2. 중복 제거 set() 사용

def solution(n):
    answer = set()
    for i in range(1, n+1):
        if n % i == 0:
            answer.add(i)
            answer.add(n // i)
    return sorted(answer)
  • set.sort() 불가능. answer.sort()도 정렬만 하고 return 값 none이라 안됨. 따라서 sorted(answer) 이 되어야함.

set() 정리

  • set() : 중복 제거 함수
  • set() : 순서 없는 집합 자료형. 즉, 순서가 없고, 정렬도 없고, 인덱스도 사용 불가능. set() 결과는 set 자료형임.
  • set() 함수와 += 연산자는 함께 사용 불가.
    (+= : 리스트에서만 사용 가능.)
  • set()append()도 사용 불가. 대신 add() 사용.
  • set([1,2,3,3,]) -> {1,2,3} 리스트, 문자열, 튜플 등을 집합으로 변환.
  • set('banana') -> {'a''b''n'} 중복 제거, 순서보장 안됨.

append()add() 정리

profile
ALL IS WELL

0개의 댓글