코테 인증

Jinny·2일 전
0

코테인증 (2차 스터디 - 1주차)

  • 날짜 / 주차-누적 횟수: 2025.02.06(목) / 1주차-1회
  • 사이트 이름: 프로그래머스
  • 사용 언어: JavaScript
  • 문제 고유 번호 및 레벨: 42746 / Lev 2
  • 참고 풀이 방법:
    fuction solution(numbers) {
    	numbers.sort(a, b) => {
    		const A = a + '';
    		const B = b + '';
    		
    		const Ahead = A.charAt(0);
    		const Bhead = B.charAt(0);
    		
    		if (Ahead > Bhead) return -1;
    		if (Ahead === Bhead) {
    			const C = +(A + B);
    			const D = +(B + A);
    			if (C > D) return - 1;
    			if (C < D) return 1;
    		}
    		if (Ahead < Bhead) return 1;
    	});
    	
    		return Math.max(...numbers) === 0 ? "0" : numbers.join('')l;
  • 최적 풀이 방법:
    fuction soluition(numbers) {
    	let answer = numbers
    		.map((v) => v + '')
    		.sort((a, b) => (b + a) * 1 - (a + b) * 1
    		.join('');
    		
    	return answer[0] === '0' ? '0' : answer;
    }
    • .sort((a, b) => (b + a) 1 - (a + b) 1
      • 두 문자열을 이었을 때, 더 큰 쪽을 앞 쪽에 배치 (큰 숫자가 맨 앞에 간다)
  • 배운 개념:
    • charAt() 함수
      • charAt은 문자열에서 지정된 위치에 존재하는 문자를 찾아서 반환하는 함수이다.
      • 특징
        • 자바스크립트의 문자열 내의 문자는 왼쪽에서 오른쪽으로 인덱스가 매겨지는데 여기서 인덱스의 순번은 0부터 시작되고 마지막 인덱스 순번은 -1로 매겨진다.
        • 인덱스가 문자열의 길이를 벗어나게 되면 빈 문자열을 반환한다.
      • [문자열].charAt([문자 위치]);
      • e.g.
        let A = 'JavsScript';
        
        console.log(A.charAt(0)); // J출력
        console.log(A.charAt(A.length - 1)); // t출력
    • sort의 작동방식
      • 두 인자를 밸쌤 연산했을 때, 양수가 나오면 자리를 바꾼다고 생각하면 쉽다.
        • a - b: 연산 결과가 0보다 크다는 것은 a가 b보다 크다는 것을 의미한다. 따라서 a가 b 보다 클 때만 자리를 바꾸고, 큰 수를 뒤로 보내는 것이기 때문에 오름차순으로 정렬을 수행한다.
        • b - a: 마찬가지로 b가 a보다 클 때만 0보다 커진다. 내림차순을 수행한다.
profile
세상을 이롭게 하는 프론트엔드 개발자 Jinny

0개의 댓글

관련 채용 정보