한번씩 읽고 가세요.
“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
한 번만 등장한 문자
문제 설명
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
제한사항
0 < s의 길이 < 1,000
s는 소문자로만 이루어져 있습니다.
입출력 예
s result
"abcabcadc" "d"
"abdc" "abcd"
"hello" "eho"
입출력 예 설명
입출력 예 #1
"abcabcadc"에서 하나만 등장하는 문자는 "d"입니다.
입출력 예 #2
"abdc"에서 모든 문자가 한 번씩 등장하므로 사전 순으로 정렬한 "abcd"를 return 합니다.
입출력 예 #3
"hello"에서 한 번씩 등장한 문자는 "heo"이고 이를 사전 순으로 정렬한 "eho"를 return 합니다.\\
풀이
function solution(s) {
let lst = s.split('').sort()
let answer = []
while(lst.length) {
let target = lst.shift()
if(lst[0] == target) {
while(lst[0] == target) {
lst.shift();
}
} else {
answer.push(target)
}
}
return answer.join('')
}
잘라서 배열로 저장하기
문제 설명
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ my_str의 길이 ≤ 100
1 ≤ n ≤ my_str의 길이
my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
입출력 예
my_str n result
"abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
"abcdef123" 3 ["abc", "def", "123"]
입출력 예 설명
입출력 예 #1
"abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.
입출력 예 #2
"abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.
유의사항
입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.
풀이
function solution(my_str, n) {
return my_str.match(new RegExp(`.{1,${n}}`, 'g'))
}
진료 순서 정하기
문제 설명
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
중복된 원소는 없습니다.
1 ≤ emergency의 길이 ≤ 10
1 ≤ emergency의 원소 ≤ 100
입출력 예
emergency result
[3, 76, 24] [3, 1, 2]
[1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1]
[30, 10, 23, 6, 100] [2, 4, 3, 5, 1]
입출력 예 설명
입출력 예 #1
emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.
입출력 예 #2
emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다.
입출력 예 #3
emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.
풀이
function solution(emergency) {
let 응급순서 = emergency.slice().sort((a,b) => b -a)
return emergency.map(v => 응급순서.indexOf(v)+1)
}
function solution(emergency) {
let sort = [...emergency].sort((a, b) => b - a);
return emergency.map(k => {
const queue = sort.findIndex(v => v === k);
return queue + 1
});
}
영어가 싫어요
문제 설명
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
제한사항
numbers는 소문자로만 구성되어 있습니다.
numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
1 ≤ numbers의 길이 ≤ 50
"zero"는 numbers의 맨 앞에 올 수 없습니다.
입출력 예
numbers result
"onetwothreefourfivesixseveneightnine" 123456789
"onefourzerosixseven" 14067
입출력 예 설명
입출력 예 #1
"onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.
입출력 예 #1
"onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.
풀이
function solution(numbers) {
return +numbers.replaceAll('one','1').replaceAll('two','2').replaceAll('three','3').replaceAll('four','4').replaceAll('five','5').replaceAll('six','6').replaceAll('seven','7').replaceAll('eight','8').replaceAll('nine','9').replaceAll('zero','0')
}
sort()함수는 배열 또는 목록의 요소를 지정된 순서로 정렬하기 위해 많은 프로그래밍 언어에서 일반적으로 사용되는 방법입니다. 사용된 정렬 알고리즘에 따라 요소를 오름차순 또는 내림차순으로 정렬합니다.
다음은 기능 작동 방식에 대한 일반적인 설명입니다 sort().
- 순서 결정: 요소를 정렬하려는 원하는 순서를 지정해야 합니다. 예를 들어 숫자를 오름차순으로 정렬하거나 문자열을 알파벳순으로 정렬하려는 경우입니다.
- 비교: sort()함수는 요소 쌍을 비교하고 지정된 정렬 순서에 따라 상대적인 순서를 결정합니다.
- 정렬 알고리즘: 정렬에 사용되는 특정 알고리즘은 프로그래밍 언어 또는 프레임워크에 따라 다를 수 있습니다. 일반적인 정렬 알고리즘에는 Quicksort, Mergesort 및 Heapsort가 포함됩니다. 이러한 알고리즘은 원하는 순서가 될 때까지 요소를 교체하거나 이동하여 요소를 재정렬합니다.
- 내부 정렬: 많은 프로그래밍 언어는 sort()원래 배열 또는 목록이 직접 수정됨을 의미하는 내부 작업으로 구현됩니다. 이것은 원래 순서를 보존할 필요가 없을 때 유용할 수 있습니다.
- 반환 값: 일부 프로그래밍 언어는 정렬된 배열 또는 목록을 함수의 결과로 반환합니다 sort(). 다른 것들은 원래 배열이나 목록을 수정하고 어떤 값도 명시적으로 반환하지 않습니다.
함수의 특정 구문과 사용법은 sort()프로그래밍 언어마다 다를 수 있다는 점은 주목할 가치가 있습니다. 특정 언어를 염두에 두고 있다면 sort()해당 언어로 사용하는 방법에 대한 보다 구체적인 정보를 제공할 수 있습니다.