티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/120890
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
정수가 들어 있는 배열의 요소 중 N과 가장 가까운 요소를 고르는 문제입니다. 가장 가까운 수가 여러 개일 경우 가장 작은 수가 정답입니다.
Test Case 1.
array = [3, 10, 28] N = 20이면 N과 가장 가까운 수는 28
Test Case 2.
array = [3, 1] N = 2이면 N과 가장 가까운 수 중 가장 작은 수는 1
Solution.
가장 가까운 수를 구하기 위해서는 배열의 요소 값과 N과의 차이를 절댓값 한 것 중 그 값이 가장 작은 것을 구하기, 다만 가까운 수가 여러 개이면 그 값들을 대소 비교해야 하니깐 배열 요소 값과 차이의 절댓값, 총 2개의 데이터가 필요
=> Dictionary에 배열 요소 값과 차이의 절댓값을 넣고 먼저 차이의 절댓값으로 오름차순시키고, 이 값이 같으면 배열의 요소 값으로 오름차순시키기 (이 기준이면 맨 첫 번째 데이터의 key값이 가장 가까운 수가 됨)
def solution(array, n):
answer = 0
dic1 = {}
for x in array:
dic1[x] = abs(n-x) #배열의 요소 값을 key, 차이의 절댓값을 value로 넣기
dic1 = sorted(dic1.items(), key=lambda x : (x[1],x[0])
answer = dic1[0][0]
return answer
※ Sorted 함수 정리
딕셔너리의 정렬 : sorted(딕셔녀리.items(), key = lambda x : (x[1], x[0])), value로 먼저 오름차순 정렬시키고, 이 값이
같으면 key로 오름차순 시키기
cf) 내림차순시키고 싶은 조건에 - 붙이기 sorted( 딕셔녀리.items(), key = lambda x : (-x[1], x[0])), value 기준으로 먼저 내림차순 시키고, 이 값이 같으면 key로 오름차순 시키기
'Python' 카테고리의 다른 글
[프로그래머스] deque을 활용한 문제 풀이 (0) | 2025.02.03 |
---|---|
[프로그래머스] List 인덱싱을 활용한 문제 풀이 (1) | 2025.01.30 |
[프로그래머스] 배열 회전시키기 (0) | 2025.01.21 |
[시각화] Matplotlib (0) | 2025.01.15 |
[프로그래머스] 피자 나눠먹기 문제 모음 (0) | 2025.01.13 |
- 머신러닝 #xgboost #
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- #attention #deeplearning
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- #tf idf
- nlp #토큰화 #nltk #konply
- 머신러닝 #lightgbm #goss #ebf
- 잘라서 배열로 저장하기 #2차원으로 만들기
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- python #deque #프로그래머스 #공 던지기 #문자열 계산하기 #코딩테스트
- # 할인행사 #counter #딕셔너리 #프로그래머스
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- # 프로그래머스 #연속된 부분수열의 합 #이중 포인터 #누적합
- #opencv #이미지 연산 #합성
- #docker #container #docker command
- 머신러닝 #project #classification #dacon
- #seq2seq #encoder #decoder #teacher forcing
- #docker #docker compose
- # 프로그래머스 # 카펫 # 완전탐색
- #프로그래머스 #안전지대 #시뮬레이션
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- #docker #image #build #dockerfile
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- #polars #대용량 데이터셋 처리
- python #프로그래머스 #리스트 #인덱싱
- seaborn #데이터시각화 #타이타닉
- python #프로그래머스 #겹치는선분의길이
- #python #프로그래머스 #외계어사전 #itertools #순열과조합