• 분류 전체보기 (512)
    • 개발남노씨(Coding Test) (6)
    • 고농축 백엔드 (17)
    • 재귀함수 DFS 총정리 (1)
    • 프론트엔드 날개달기:Vuejs.React (1)
    • 훈훈한 javascript (5)
    • 렛츠기릿 자바스크립트 (18)
    • 나도코딩 (1)
      • 웹 스크래핑 (1)
    • 프로그래머스(자바스크립트) (41)
      • LV.0(자바스크립트) (41)
    • 프로그래머스(자바) (121)
      • LV.0(자바) (56)
      • LV.1(자바) (41)
      • LV.2(자바) (23)
    • 프로그래머스(파이썬) (127)
      • LV.0(파이썬) (46)
      • LV.1(파이썬) (51)
      • LV.2(파이썬) (30)
    • 임시저장소 (31)
    • 프로젝트 (0)
    • 자바 알고리즘 (13)
      • 알고리즘 직빵 자바 문법 (10)
      • String(문자열) (3)
    • 파이썬 알고리즘 (93)
      • 알고리즘 직빵 파이썬 문법 (20)
      • 알고리즘 백준 (2)
      • 파이썬 알고리즘(사고력기르기) (6)
      • 파이썬 탐색 & 시물레이션 (8)
      • 이분탐색 & 그리디 알고리즘 (10)
      • 스택, 큐, 해쉬, 힙 (10)
      • 완전탐색과 DFS기초 (12)
      • DFS, BFS 활용 (19)
      • 동적계획법 (6)
    • 자바 (27)
      • Java TPC(생각하고, 표현하고, 코딩하고) (17)
      • Java (중요하고, 이해 안 되고, 어려운) (10)
    • 스프링 (5)
      • 스프링 MVC 패턴 2편 (5)
hELLO · Designed By 정상우.
@@#@@

기록용 블로그

프로그래머스(파이썬)/LV.0(파이썬)

가까운 수 → "특이한 정렬"과 매우 유사

2022. 11. 18. 12:37

나의 풀이

def solution(array, n):
    a=[]
    answer=[]
    for i in array:
        tmp= abs(i-n)
        a.append([tmp, i])
    print(a)

    sorted_a = sorted(a, key=lambda x: (x[0], x[1]))
    for i in sorted_a:
        answer.append(i[1])
    return answer[0]

 

▶ tmp, i 를 리스트로 해서 리스트를 통째로 집어 넣음

 

▶ tmp(차)를 오름 차순으로 정렬하되, tmp가 동일한 값인 경우 i를 오름차순으로 정렬 

 

 

다른 사람의 풀이

def solution(array, n):
    array.sort(key = lambda x : (abs(x-n), x-n))
    print(array)
    answer = array[0]
    return answer

 

▶ 정렬대상은 array의 요소인 x이며

 

▶ sort key 값에 2개 항목을 넣을 수 있다. →  첫번째 정렬, 두번째 정렬

 

▶ 첫번째 정렬방법은 abs(x-n) 의 오름차순이다.  

 

▶ 두번째 정렬방법은 x-n의 오름차순이다.  이는 abs(x-n)이 같은 경우 작은 숫자를 좌측으로 배측하기 위함이다.

 

▶ n= 9 이고 array= [8, 10] 인 경우 abs(x-n)값이 동일하다.

     그러나 x-n의 오름차순이므로

   

▶ 8의 경우 x-n 즉 8 - 9 = -1이고, 9의 경우 x-n = 10 - 9= +1이다.

 

▶ array에 8이 앞에 오고, 10이 뒤에 온다.

 

▶ 최종적으로 맨 앞에 array[0]을 추출하면 된다. 

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래머스(파이썬) > LV.0(파이썬)' 카테고리의 다른 글

암호해독★ - 인덱스 + step(점프)  (0) 2022.11.18
369게임 - lambda★  (0) 2022.11.18
삼각형의 완성조건(1)  (0) 2022.11.18
중복된 문자제거★ - not in 연산자  (0) 2022.11.18
컨트롤 제트★★  (0) 2022.11.18
    '프로그래머스(파이썬)/LV.0(파이썬)' 카테고리의 다른 글
    • 암호해독★ - 인덱스 + step(점프)
    • 369게임 - lambda★
    • 삼각형의 완성조건(1)
    • 중복된 문자제거★ - not in 연산자
    @@#@@
    @@#@@
    자바, 스프링, 알고리즘, 깃허브, 파이썬

    티스토리툴바