파이썬 프로그래머스 코딩테스트연습 코딩테스트 입문 소인수분해 오답노트
문제 설명:
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
오답:
설명: 보시다시피 1을 제외한 모든 약수가 result 안에 들어가 있는 것을 확인할 수 있다. 여기서는 약수가 아니라 소인수분해 즉 소수를 찾아야하기 때문에 result에 담긴 약수들 중에서 소수만 골라내는 코드를 추가하면 될 것 같다.
정답:
설명: 약수들의 리스트중에서 n미만의 숫자들과 곱했을때 존재하는 즉 소수가아닌 합성수들을 제거해주었다. 그랬더니 모든 테스트 통과!
다른 정답:
if 조건문을 사용하여 n을 d로 나눈 나머지가 0인지 확인, 만약 나머지가 0이라면 n은 d로 나누어 떨어지는 수 따라서 n을 d로 나누고 그 결과를 다시 n에 할당 그리고 d가 answer 리스트에 없는 경우에만 answer에 d를 추가이렇게 함으로써 중복되지 않는 소인수들만 answer에 추가되게 되는코드 만약 나머지가 0이 아니라면 d는 n의 소인수가 아니므로 d를 1 증가시킵니다. 이렇게 함으로써 다음 소수로 넘어가게 됨(chatgpt 참고) while 루프가 끝난 후 answer 리스트가 소인수들로 채워지고, 이를 반환
--
아직 while문을 사용하는 것이 어색해서 이걸로 연습연습
'PYTHON' 카테고리의 다른 글
파이썬 프로그래머스 코딩테스트 연습 입문 인덱스 바꾸기 (0) | 2023.06.27 |
---|---|
파이썬 프로그래머스 코딩테스트 연습 입문 중복된 문자제거 (0) | 2023.06.27 |
파이썬 프로그래머스 코딩테스트 연습 입문 합성수 찾기_이중 for loop문 (0) | 2023.06.26 |
프로그래머스 파이썬 코딩테스트연습 입문 오답노트 한 번만 등장한 문자_python 알파벳순으로 문자열 정렬 구분자.join(sorted()) (0) | 2023.06.26 |
파이썬 프로그래머스 코딩테스트 연습 2차원 만들기_.tolist() (0) | 2023.05.09 |