오늘의 TIL
3개의 문제에 대한 여러가지 풀이과정
: toUpperCase(), toLowerCase() 명령어를 모르는 상태에서 접근해 본 방식이다.
var str = "pPoooyY";
let func = function(s){
//각 해당되는 문자 개수를 세기 위한 변수 선언
let p = 0;
let y = 0;
//문자열 순서대로 접근
for(let x=0; x <= s.length; x++){
//1. 해당되는 문자 찾기
if(s[x] === "p" || s[x] === "P"){
p += 1;
};
//2. 해당되는 문자 찾기
if(s[x] === "y" || s[x] === "Y"){
y += 1;
};
};
// 두 문자의 개수가 같거나 없을 경우
if(p === y || (p == 0 && y == 0)){
return true;
}else{
return false;
}
};
console.log(func(str));
function func(s){
//각 해당 문자 초기 설정
let p = 0;
let y = 0;
//전달 받은 문자열 대문자로 변경
s = s.toUpperCase();
for(let i=0; i <s.length; i++){
s[i] === "P" ? p++ : null;
s[i] === "Y" ? y++ : null;
}
return p !== y ? false : true;
};
let vaules = [4,7,12];
let signs = [true, false, true];
function add(absolutes, signs){
//while문 초기값 설정
let i = 0;
// 합계를 저장할 변수 선언
let sum=0;
while(i < signs.length){
if(signs[i] === true){
sum += absolutes[i];
}else{
sum -= absolutes[i];
}
i++;
};
return sum;
};
function Sum(Absolutes, Signs){
// 합계를 저장할 변수 선언
let sum = 0;
//반복문을 사용하여 하나씩 접근하기
for(let i = 0; i < vaules.length; i++){
// true, false일 경우 수행할 연산
signs[i] ? sum += vaules[i] : sum -= vaules[i];
};
return sum;
};
function a(){
}
let strings = ["sun", "bed", "car"];
let n = 1;
function add(str, n){
let char= [];
let result = [];
//해당 n번째의 문자 찾아서 정렬하기
for(let i=0; i < str.length; i++){
//각 배열에 초기값 설정
char[i] = "";
//n번째 위치의 문자를 char[i] 배열에 넣기
char[i] += str[i].charAt(n);
}
//문자 정렬
char.sort();
//정렬된 문자를 기준으로 문자열 순서 변경하기
for(let j=0; j < str.length; j++){
//각 배열에 초기값 설정
result[j] = "";
// 문자열 0번째부터 반복
for(let k = 0; k < str.length; k++){
// 정렬된 문자에 해당되는 문자열 찾아 위치 변경하기
if(str[k].charAt(n) === char[j]){
result[j] += str[j].replace(str[j], str[k]);
break;
}
}
};
return result;
};
마지막 문제를 풀면서 가장 먼저 생각했던 방식은 아스키 코드를 이용해서 숫자로 변경 후 조건식을 대입하려고 했었다. 과거에 문자열을 정렬하는데 사용했던 방식 이라 다른 방식으로 해결해보고 싶어 위의 방식을 활용해봤다. 활용하는데 있어 너무 아쉬운 부분이 크다.
이유) for문 안에 for문을 사용하여 불필요한 접근이 많아 보인다..😂😅
아쉽지만... 지금 문제에 많은 시간을 투자하기에는 공부할 양이 너무 많아 현재 문제를 푼 거에 대해 만족하려고 한다.