본문 바로가기
알고리즘/Codewars

[Codewars] Two to One (7 kyu) / JavaScript

by fluss 2022. 10. 18.

 

https://www.codewars.com/kata/5656b6906de340bd1b0000ac

 

Codewars - Achieve mastery through coding practice and developer mentorship

Coding practice for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!

www.codewars.com

 

DESCRIPTION:

Take 2 strings s1 and s2 including only letters from a to z. Return a new sorted string, the longest possible, containing distinct letters - each taken only once - coming from s1 or s2.

 

Examples:

a = "xyaabbbccccdefww"
b = "xxxxyyyyabklmopq"
longest(a, b) -> "abcdefklmopqwxy"

a = "abcdefghijklmnopqrstuvwxyz"
longest(a, a) -> "abcdefghijklmnopqrstuvwxyz"
 

설명:

a부터 z까지의 단어만 포함한 두 문자열 s1, s2을 받는다. s1 또는 s2에서 가져온 별개의 문자들-오직 한 번만 취해짐-을 포함한 가능한 가장 긴 정렬된 새 문자열을 반환하세요.

 

예시:

a = "xyaabbbccccdefww"
b = "xxxxyyyyabklmopq"
longest(a, b) -> "abcdefklmopqwxy"

a = "abcdefghijklmnopqrstuvwxyz"
longest(a, a) -> "abcdefghijklmnopqrstuvwxyz"
 

풀이

function longest(s1, s2) {
  return [...new Set(s1 + s2)].sort().join('');
}

s1과 s2를 합친 다음 set으로 중복이 없는 배열로 만들어준다. 그리고 그 배열의 원소를 정렬해서 문자열로 합친 다음 반환한다. 

댓글