TIL 4. 2024-01-02

이준구·2024년 1월 2일
0

TIL 순서

목록 보기
4/119
post-thumbnail

오늘의 TIL
3개의 문제에 대한 여러가지 풀이과정


1. 하나의 문자열을 기준으로 두 문자의 개수 비교


1. 첫번째 풀이과정

: 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));

2. 두번째 풀이과정

  • toUpperCase(), toLowerCase() 명령어를 사용
  • 오늘 배운 삼항연산자를 사용

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;

};




2. 조건에 맞는 계산 합

1. 첫번째 풀이과정

  • while문 연습을 위한 풀이
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;
    };

2.두번째 풀이과정

  • for문 연습을 위한 풀이
  • 삼항 연산자 연습
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;

};



3. n번째 문자를 기준으로 문자열을 오름차순으로 정렬


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문을 사용하여 불필요한 접근이 많아 보인다..😂😅
아쉽지만... 지금 문제에 많은 시간을 투자하기에는 공부할 양이 너무 많아 현재 문제를 푼 거에 대해 만족하려고 한다.

profile
개발 중~~~ 내 자신도 발전 중😂🤣

0개의 댓글

관련 채용 정보