하루 하나씩 작성하는 TIL #16
이전에 풀었던 코딩테스트 문제들에 대해 복습하는 시간.
이전 벨로그에 다 작성되어 있는 문제이기 때문에 따로 문제 설명은 첨부하지 않겠다.
function solution(s, n) {
var upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var lower = "abcdefghijklmnopqrstuvwxyz";
var answer = '';
for (var i = 0; i < s.length; i++) {
var text = s[i];
// 문자가 아닌 공백일 경우 덧셈 할당
if (text == ' ') {
answer += ' ';
} else {
var textArr = upper.includes(text) ? upper : lower;
// 대문자 문자열에 해당하는 문자가 있을 시 upper, 없다면 lower 할당
var index = textArr.indexOf(text) + n;
// 만약 더한 인덱스가 할당한 문자열의 길이보다 길거나 같을 경우 인덱스 - 문자열 길이 빼기
if (index >= textArr.length) index -= textArr.length;
// 계산한 인덱스에 해당하는 문자 덧셈 할당
answer += textArr[index];
}
}
return answer;
}
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i = 0; i < numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
function solution(strings, n) {
return strings.sort((a,b) => {
if (a[n]>b[n]) return 1;
else if (a[n]<b[n]) return -1;
else return a > b ? 1 : -1;
})
}
function solution(array, commands) {
var answer = [];
for(var i=0; i<commands.length;i++){
var list = array.slice(commands[i][0]-1, commands[i]
[1]).sort((a,b)=>{return a-b});
answer.push(list[commands[i][2]-1]);
}
return answer;
}
function solution(numbers) {
var answer = [];
for ( let i = 0; i < numbers.length; i++) {
for ( let j = i + 1; j < numbers.length; j++) {
let sum = numbers[i] + numbers[j];
if( answer.indexOf(sum) === -1) {
answer.push(sum);
}
}
}
answer.sort(function(a,b) {
return a - b;
})
return answer;
}
function solution(s) {
let stack = [];
let ans = [];
for(let i = 0; i < s.length; i++){
if(!stack.includes(s[i])){
ans.push(-1);
stack.push(s[i]);
continue;
}
if(stack.includes(s[i])){
ans.push(stack.length - stack.lastIndexOf(s[i]));
stack.push(s[i]);
continue;
}
}
return ans;
}