Study 20.

WorldWannyWeb.·2021년 5월 18일
0

Study

목록 보기
18/35
post-thumbnail

2021-05-03


코드, 면접문제중 아무거나 2문제씩


1. 문자열내맘대로 정렬하기

문제 설명
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.

제한 조건
strings는 길이 1 이상, 50이하인 배열입니다.
strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
모든 strings의 원소의 길이는 n보다 큽니다.
인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.

입출력 예
strings n return
["sun", "bed", "car"] 1 ["car", "bed", "sun"]["abce", "abcd", "cdx"] 2 ["abcd", "abce", "cdx"]

입출력 예 설명
입출력 예 1
"sun", "bed", "car"의 1번째 인덱스 값은 각각 "u", "e", "a" 입니다. 이를 기준으로 strings를 정렬하면 ["car", "bed", "sun"] 입니다.

입출력 예 2
"abce"와 "abcd", "cdx"의 2번째 인덱스 값은 "c", "c", "x"입니다. 따라서 정렬 후에는 "cdx"가 가장 뒤에 위치합니다. "abce"와 "abcd"는 사전순으로 정렬하면 "abcd"가 우선하므로, 답은 ["abcd", "abce", "cdx"] 입니다.

Answer

code

function solution(strings, n) {
  return strings.sort((a, b) =>
    a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n])
  );
}

description
sort함수로 정렬을 사용했고, a의 n번째와 b의 n번째를 비교하여 오름차순 정렬하고, a의 n번째 글자와 b의 n번째 글자가 같은 경우, 사전순으로 앞선 문자열이 앞쪽에 위치하므로 a와 b를 비교한다.


2. 정수 내림차순으로 배치하기

문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건
n은 1이상 8000000000 이하인 자연수입니다..

입출력 예
n return
118372 873211

Answer

code

function solution(n) {
  let str = n.toString();
  let split = str.split('');
  let arr = split.sort().reverse();
  let result = arr.join('');
  return Number(result);
}

description
숫자를 먼저 문자열로 바꾸고 배열로 바꾸어 정렬하고 뒤집은 후 다시 Number함수를 이용해 정수로 바꾸었다.

profile
와니완의 월드와이드와니웹🐥

0개의 댓글