연권
달콘박스
연권
전체 방문자
오늘
어제
  • 전체 (308)
    • Web (22)
      • JavaScript (8)
      • TypeScript (2)
      • Node.js (8)
      • HTML (0)
      • CSS (0)
      • Network (1)
      • Browser (0)
      • Patterns (3)
    • Framwork (4)
      • Vue.js (3)
      • Electron (1)
    • Infra&DevOps (1)
    • Algorithm (246)
    • Database (16)
    • Review (15)
    • Test (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • MySQL
  • DP
  • 백준ㅇ
  • BFS
  • typescript
  • 문자열
  • 백준
  • 프로그래머스
  • sql
  • 스택
  • 동적계획법
  • 정렬
  • 진수
  • 재귀
  • java
  • 알고리즘
  • 코딩테스트 연습
  • 진법
  • 백트레킹
  • javascript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
연권

달콘박스

Algorithm

프로그래머스 코딩테스트 연습 - 가장 큰 수 [ javascript ]

2019. 12. 23. 11:58
반응형

보기엔 쉬워보였는데 풀이가 안떠올라서 한참 걸렸습니다..ㅠ

function solution(numbers) {
    var answer = '';
    if (numbers.reduce((a,b)=>a+b)==0) {return "0";}
    let num = numbers.map(x=>x.toString()); // string형변환
    num.sort((a, b)=>{
        let num1 = a+b, num2 = b+a;
        return num1-num2;
    });
    let number = num.map(x=>x.toString());
    for (let i = 0; i < num.length; i++) {
        answer+=number.pop();
    }
    return answer;
}

reduce와 map 메소드를 처음 사용해 봤습니다.

 

참고 : map() reduce() 

 

Array.prototype.reduce()

reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.

developer.mozilla.org

풀고 나서 다른분들의 풀이를 보았더니,, 아직 형변환이 미숙하다는걸 느꼈습니다.

map은 map(v=>v+'') 이런식으로

sort는 .sort((a,b) => (b+a)*1 - (a+b)*1) 이런식으로

그리고 join 메소드도 처음 알게되었고

0에 대한 처리도 answer[0]==='0'?'0':answer 이런식으로 제일 높은 숫자가 0이면 0을 출력하는 로직이였습니다.

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

'Algorithm' 카테고리의 다른 글

백준 1002번 터렛 [ Java ]  (0) 2019.12.27
백준 3053번 택시 기하학 [ Java ]  (0) 2019.12.23
백준 4153번 직각삼각형 [ Java ]  (0) 2019.12.23
백준 3009번 네 번째 점 [ Java ]  (0) 2019.12.23
백준 1085번 직사각형에서 탈출 [ java ]  (0) 2019.12.19
    'Algorithm' 카테고리의 다른 글
    • 백준 1002번 터렛 [ Java ]
    • 백준 3053번 택시 기하학 [ Java ]
    • 백준 4153번 직각삼각형 [ Java ]
    • 백준 3009번 네 번째 점 [ Java ]
    연권
    연권

    티스토리툴바