개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (286)
    • Web Front End (75)
      • Javascript & Typescript (26)
      • React (12)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (7)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • JavaScript
  • 프론트엔드
  • 회고
  • 릿코드
  • 노마드북클럽
  • 오늘의회고
  • 노개북
  • 개발자
  • TypeScript
  • 자바스크립트

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Problem Solved/Programmers

[Programmers][Javascript] 가장 큰 수

2020. 1. 15. 15:29
반응형

문제

[Programmers][Javascript] 가장 큰 수

문제 설명

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내는 문제

나는 처음에 sort하는 것을 값들을 10으로 나눈 나머지 값들로 하려고 했다.
근데 그러면 예제 테스트는 통과하지만 전체 예제는 통과하지 못한다. 테스트 케이스를 잘 생각하지 못하겠어서 다른 블로그를 참고했다.
그래서 나온 방법이 앞뒤의 수를 문자열로 더해 수를 비교하는 것이다.
30과 3을 문자열로 더하면 303과 330이 나오게 된다. 이 두 수를 비교해 큰 수대로 정렬한다는 것이다.
자바스크립트에서 숫자에서 문자로 바꾸는 형변환이 숫자 + ''로도 할 수 있어서 map을 이용해 바꿔줄 수 있다.
그리고 마지막으로 헤맸던 부분은 return할 때 answer[0]이 0인지 확인하는 부분이다.
이 부분은 문자열 answer의 첫 번째 문자가 0인지 확인하기 위한 문구이다.
정답 숫자의 첫 문자가 0이면 뒤에 숫자가 여러개 있어도 0일 것이기 때문에 0으로 바꿔주는 것이다.
참고 : https://code-reading.tistory.com/81

성공 코드

function solution(numbers) {
    let answer = numbers.map(x => x + '')
        .sort((a, b) => (b + a) - (a + b)).join('');
    return answer[0] === '0' ? '0' : answer;
}
반응형
저작자표시 (새창열림)
    'Problem Solved/Programmers' 카테고리의 다른 글
    • [Programmers][Javascript] 124 나라의 숫자
    • [Programmers][Javascript] 12903번 - 가운데 글자 가져오기
    • [Programmers][Javascript] K번째수
    • [프로그래머스][Javascript] 문자열 압축
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바