본문 바로가기
부트캠프 개발일지 2023-2024/JavaScript 자바스크립트

[2주차] 자바스크립트 문법 종합반 : 알고리즘 문제 풀이 (문자열 내 p와 y의 개수, 음양더하기)

by whereanna00 2023. 10. 14.

자바스크립트 문법 종합반

-알고리즘 문제 풀이

(1) 문자열 연습하기 ( 문자열 내 p와 y의 개수 )

(2) 반복문, 조건문 연습하기 (음양더하기)

 


알고리즘 문제를 풀때 유의할 점

// 코딩테스트를 풀때는 머릿속에 있는 로직을 주석으로 스텝을 만든 후에 코드를 적기
// 문제에서 보여주는 예시를 직접 코딩할 때 이용하여 결과를 확인하는 방향으로 코딩해야 한다
// 코딩이 모두 끝났으면 맨아래 선언값과 콘솔로그를 제외한 코드를 복사 붙여넣기 하여 답안을 제출한다.

 

 

1. 문자열 연습하기 ( 문자열 내 p와 y의 개수 )

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

더보기

 

 

// 코딩테스트를 풀때는 머릿속에 있는 로직을 주석으로 스텝을 만든 후에 코드를 적기

function solution (s) {
  var answer = true;
  
  // 1. 대문자로 통일
  s = s.toUpperCase();

  // 2. for문을 통해 문자열의 요소 하나하나씩을 비교
  // 2-1. p, y와 비교

  var num = 0;

  for (var i = 0; i < s.length; i++) {
     // 여기에서 비교
     // 비교 방식은? 
     // 0이라는 숫자를 지정하고, 만약 0이 p와 일치하면 + 해주고, y와 일치하면 - 해준다. 
     // 따라서 그 0이라는 값이 마지막에 0이라면 p와 y의 개수가 같은 것이 된다.
     if (s[i] === 'P') { // 만약에 s 문자열 안에 있는 i 번째 요소가 대문자 P 라면
        num++;
     }
     if (s[i] === 'Y') {
        num--;
     }
  }
  // 3. 개수 체크(p와 y의 개수가 같은지를 체크)
  if (num === 0) {
    answer = true;
  } else {
    answer = false;
  }
  return answer;
}

var str1 = "pPoooyY";
var str2 = "Pyy";

console.log(solution(str2));


// 결국 예시를 직접 코딩할 때 이용하여 결과를 확인하는 방향으로 코딩해야 하고
// 코딩이 모두 끝났으면 맨아래 선언값과 콘솔로그를 제외한 코드를 복사 붙여넣기 하여 답안을 제출한다.

 

 

(2) 반복문, 조건문 연습하기 (음양더하기)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

더보기
// 코딩테스트를 풀때는 머릿속에 있는 로직을 주석으로 스텝을 만든 후에 코드를 적기

function solution(absolutes, signs) {
  // 1. return 해야하는 answer 생성; 
  // 결국 출력해야하는 값이 숫자이기 때문에 0으로 시작하기
  var answer = 0 

  // 2. 두 배열을 비교해 가며 값을 더하거나 빼줄 것
  // 2-1. 두 배열은 크기가 같음
  for(var i = 0; i<absolutes.length; i++) { //absolutes 나 signs 둘 중 하나만 선택해서 돌려도 상관 없다.
    // 부호(+-)에 따른 처리
    if(signs[i] === true)  { // 만약에 signs의 i 번째 요소가 true 이면
        // 값이 true 인 경우(양수)
        answer = answer + absolutes[i];
    } else if (signs[i] === false){
        // 값이 false 인 경우(음수)
        answer = answer - absolutes[i];
    }
  }
  // 3. 출력
  return answer;
}

var absolutes = [4,7,12];
var signs = [true,false,true];

console.log(solution(absolutes, signs));
// 9


// 결국 예시를 직접 코딩할 때 이용하여 결과를 확인하는 방향으로 코딩해야 하고
// 코딩이 모두 끝났으면 맨아래 선언값과 콘솔로그를 제외한 코드를 복사 붙여넣기 하여 답안을 제출한다.

 

 

728x90
반응형