[2주차] 자바스크립트 문법 종합반 : 알고리즘 문제 풀이 (문자열 내 p와 y의 개수, 음양더하기)
by whereanna002023. 10. 14.
자바스크립트 문법 종합반
-알고리즘 문제 풀이
(1) 문자열 연습하기 ( 문자열 내 p와 y의 개수 )
(2) 반복문, 조건문 연습하기 (음양더하기)
알고리즘 문제를 풀때 유의할 점
// 코딩테스트를 풀때는 머릿속에 있는 로직을 주석으로 스텝을 만든 후에 코드를 적기 // 문제에서 보여주는 예시를 직접 코딩할 때 이용하여 결과를 확인하는 방향으로 코딩해야 한다 // 코딩이 모두 끝났으면 맨아래 선언값과 콘솔로그를 제외한 코드를 복사 붙여넣기 하여 답안을 제출한다.
// 코딩테스트를 풀때는 머릿속에 있는 로직을 주석으로 스텝을 만든 후에 코드를 적기
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));
// 결국 예시를 직접 코딩할 때 이용하여 결과를 확인하는 방향으로 코딩해야 하고
// 코딩이 모두 끝났으면 맨아래 선언값과 콘솔로그를 제외한 코드를 복사 붙여넣기 하여 답안을 제출한다.
// 코딩테스트를 풀때는 머릿속에 있는 로직을 주석으로 스텝을 만든 후에 코드를 적기
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
// 결국 예시를 직접 코딩할 때 이용하여 결과를 확인하는 방향으로 코딩해야 하고
// 코딩이 모두 끝났으면 맨아래 선언값과 콘솔로그를 제외한 코드를 복사 붙여넣기 하여 답안을 제출한다.