가장 큰 수

최진훈·2022년 3월 9일
0

programmers

목록 보기
48/73


가장 큰 수를 만드려면 앞자리에 큰수가 올수록 좋기때문에 numbers의 각 원소마다 첫번째 자리를 비교하여 큰 순서대로 숫자를 이어붙이면 될 듯 하다. 중간중간에 형변환만 잘 해주면 쉽게 풀 수 있지 않을까??

  1. 새로운 배열에 원소들을 저장할 빈 배열new를 선언한다.
  2. 입력받은 numbers의 원소를 iterator로 하나씩 꺼내어 new에 저장한다.
  3. newsorted함수를 이용하여 크기순으로 정렬하되
    3-1. map함수를 이용하여 각 원소의 첫번째 자리를 비교하는 조건을 만든다.
  4. 새롭게 정렬된 new를 iterator로 하나씩 꺼내어 answer에 더해준다.

레고레고

map함수를 이용하여 첫번째자리를 비교하는 조건문을 넣는게 아니고 sortedBy를 이용하여 조건에 맞는 값들을 가져오는게 맞는 방향같았다. 그러나 이런식으로하면 자릿수가 다른 (ex.10 과 100) 경우에 제대로된 비교를 하지 못한다. 그래서 인터넷을 좀 찾아보기로 했다.

source : https://bcp0109.tistory.com/298

sortwithcompareBy를 사용하여 비교하는 원소의 길이가 같을때와 다를때를 각각 다르게 계산해주는 방식을 알게되었다.

다시 레고레고

11번 테스트케이스만 실패가 떠서 질문하기를 찾아봤는데 numbers에 0만으로 이루어진 경우라는 글을 보았다. 그래서 비교가 끝난 후에 if(new[0] == "0") return "0"의 0일때 처리를 따로 해주었다.

테스트도 통과~~

profile
레고레고

0개의 댓글