InTen

프로그래머스 월간 코드 챌린지 문제 1 번 코드 본문

프로그래밍/파이썬

프로그래머스 월간 코드 챌린지 문제 1 번 코드

인텐 2020. 9. 12. 22:45

 

링크: programmers.co.kr/competitions/417?slug=monthly-code-challenge-s1&utm_campaign=competition417&utm_medium=introduce_competition417&utm_source=programmers

 

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

프로그래머스 쪽 대회 관련 글들을 살펴보니 문제의 대한 해설 또는 글에 대한 제제가 없는것으로 확인되어서 글을 씁니다.

광고는 제거 하였고 비영리성을 띄게 게시글을 전환해 두었습니다.

문제가 있을시 비공개 처리하겠습니다.

 

1번 문제는

1차원 배열이 주어지는데

그 각 배열의 요소의 합을 구한 후에 그 합의 중복을 제거하고 배열을 오름차순으로 정렬 시켜주기만 하면 되는 간단한

문제였습니다.

테스트 케이스를 드리자면


numbers=[2,1,3,4,1] //배열이 주어 졌을 시
2+1, 2+3, 2+4, 2+1 : 3, 5, 6, 3
1+3, 1+4, 1+1 : 4, 6, 2
3+4, 3+1 : 7, 4
4+1 : 5
가지의 값들이 나오고
나온 값들에서 중복제거 후 정렬을 하게 된다면
result : [2, 3, 4, 5, 6, 7]
위의 결과값이 나오게 됩니다.

아래는 문제의 정답처리된 코드 입니다.

def solution(numbers):
    answer=[]
    for i in range(len(numbers)-1,0,-1):
        for j in range(i,0,-1):
            answer.append(numbers[i]+numbers[j-1])
    answer_set = set(answer) // 중복 제거 
    answer = list(answer_set) // 배열로 다시 전환 
    answer.sort() // 정렬
    return answer

지금 보니 무슨 생각으로 짠 코드인지는 모르겠지만 왜 후열순으로 계산한지 모르겠네여.
set은 중복을 제거하기 위해 사용했습니다.
더 좋은 코드로 변환 할 수도 있지만 그때 당시에는 문제를 빨리 풀기위해 사용했던 코드 였습니다.

2번 문제 보기

 

 

inten.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9B%94%EA%B0%84-%EC%BD%94%EB%93%9C-%EC%B1%8C%EB%A6%B0%EC%A7%80-2%EB%B2%88-%EB%AC%B8%EC%A0%9C?category=665828

 

프로그래머스 월간 코드 챌린지 2번 문제

링크:programmers.co.kr/competitions/417?slug=monthly-code-challenge-s1&utm_campaign=competition417&utm_medium=introduce_competition417&utm_source=programmers 출처: 프로그래머스 코딩 테스트 연습, htt..

inten.tistory.com

 

Comments