[프로그래머스 | 파이썬 / 자바스크립트] 최댓값 만들기 (2)(코딩테스트 입문/ level 0)

2023. 2. 21. 09:00·Problem Solving/프로그래머스
반응형
문제

https://school.programmers.co.kr/learn/courses/30/lessons/120862?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🐍파이썬
def solution(numbers):
    numbers.sort()
    plus = numbers[-1] * numbers[-2]
    if numbers[0] < 0 and numbers[1] < 0:
        if plus < (numbers[0] * numbers[1]):    
            return numbers[0] * numbers[1]
    return plus

1️⃣ numbers를 정렬한다.

2️⃣ plus 변수에 절댓값이 가장 큰 -1번째 인덱스와 다음으로 절댓값이 큰 수인 -2번째 인덱스 값을 곱하여 대입한다.

3️⃣ 부호가 (-)인 수가 2개 이상 있는지 확인하고, (-)가 한 개나 그 이하라면 plus 값을 그대로 리턴한다. ☞ (-)가 한 개이면 그 수의 절댓값과 관련 없이 어떤 수와 곱해도 (-)가 나오기 때문에 plus가 가장 큰 수이다.

4️⃣ 부호가 (-)인 수가 2개 이상이라면 가장 절댓값이 큰 0번째 인덱스, 1번째 인덱스의 값을 곱하고 그 수를 plus 값과 비교한다. numbers[0] * numbers[1]가 plus보다 더 큰 값이라면 numbers[0] * numbers[1]를 리턴한다.

5️⃣ numbers[0] * numbers[1]가 plus보다 작다면 plus를 리턴한다.

 

 

다른 풀이 방법

def solution(numbers):
    numbers = sorted(numbers)
    return max(numbers[0] * numbers[1], numbers[-1]*numbers[-2])

(-)가 하나라면 어차피 두번째 인수가 더 클테니 부호 갯수를 신경쓸 필요 없이 더 큰 수를 고르면 되었다...😂

 

 

🐥자바스크립트
function solution(numbers) {
    numbers.sort(function(a, b) {
        return a - b;
    });
    return Math.max(numbers[0] * numbers[1], numbers[numbers.length-1] * numbers[numbers.length-2]);
}

위의 파이썬 풀이를 참고해 풀이했다.

 

❗❗ 참고

파이썬과 달리 자바스크립트의 sort()의 기본 정렬 순서는 문자열의 유니코드 코드값이다. 따라서 숫자를 정렬하기 위해서는 위와 같이 sort() 내부에 정렬 기준을 명시하는 함수를 추가해 주어야 한다.

https://tinyurl.com/2ne8c243

 

Array.prototype.sort() - JavaScript | MDN

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

developer.mozilla.org

 

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

'Problem Solving > 프로그래머스' 카테고리의 다른 글

[프로그래머스 | 파이썬 / 자바스크립트] 안전지대(코딩테스트 입문/ level 0)  (0) 2023.02.22
[프로그래머스 | 파이썬 / 자바스크립트] 자릿수 더하기(코딩테스트 입문/ level 0)  (0) 2023.02.21
[프로그래머스 | 파이썬 / 자바스크립트] n의 배수 고르기(코딩테스트 입문/ level 0)  (2) 2023.02.21
[프로그래머스 | 파이썬 / 자바스크립트] 숨어있는 숫자의 덧셈 (1)(코딩테스트 입문/ level 0)  (0) 2023.02.20
[프로그래머스 | 파이썬 / 자바스크립트] 문자열 정렬하기 (2)(코딩테스트 입문/ level 0)  (0) 2023.02.20
[프로그래머스 | 파이썬 / 자바스크립트] 숫자 찾기(코딩테스트 입문/ level 0)  (0) 2023.02.20
'Problem Solving/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 | 파이썬 / 자바스크립트] 자릿수 더하기(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] n의 배수 고르기(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 숨어있는 숫자의 덧셈 (1)(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 문자열 정렬하기 (2)(코딩테스트 입문/ level 0)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (505)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (108)
        • HTML | CSS (5)
        • JavaScript | TypeScript (41)
        • React (25)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    자바스크립트
    bfs
    AWS
    React
    spring boot
    웹사이트
    컴퓨터네트워크
    Til
    백준
    알고리즘
    클론 프로젝트
    플러터
    mysql
    자바
    Jiraynor Programming
    ZeroCho
    리액트
    d3
    타입스크립트
    파이썬
    뉴렉처
    Next.js
    프로젝트
    블로그 제작
    공식문서
    구현
    강의내용정리
    프로그래머스
    SWEA
    포트폴리오
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[프로그래머스 | 파이썬 / 자바스크립트] 최댓값 만들기 (2)(코딩테스트 입문/ level 0)
상단으로

티스토리툴바