오늘의 목표
오늘배운것
어려웠던것.
(1)문제 ex: 0부터 10까지의 수중에서 2의 배수만 뽑아보자.
처음에 혼자서 해봤는데
arr[0,1,2,3,4,5,6,7,8,9,10]
for(i=0 ; i<=10 ; i++){
if(i%=2){ console.log("2의 배수 입니다.") }
console.log("2의 배수가 아닙니다."); }
조건식도 틀렸고 2로 나눴을때 만 생각해서 0으로 떨어지는것 까지 생각을못했다.
결국 혼자 생각하다가 잘몰라서 . 강의를 듣고 문제 풀이과정을 본후
다음에 . 다시 혼자 문제를 만들어서 해보았다
0부터 10까지 수중에 3의 배수만 뽑아보자
for (let i = 0; i <= 10; i++) {
if (i > 0) {
if (i % 3 === 0) {
console.log(i + "는 3의 배수입니다.")
}}}
이 문제를 풀면서 for문 안에 다른 조건식들을 넣고 더해볼 생각을 가져야 겠다 라고 생각했고
또한 머리속에 생각한것을 자세하게 풀어보자 라고 생각했습니다.
(2)대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
이 문제가 1주차 강의에 테스트 문제였는데
처음에 문제를 보고 어떻게 해야될지 생각을 했고 강사님 말씀대로 주석으로 해나가야 될것을 적을려고 했다. 근데 for문을 돌려서 갯수가 같으면 true 틀리면 false 여기 밖에 생각이 안나서
강의를 듣고 어떤식으로 문제를 접근 해야 되는지 알게 되고 강의에서는 대문자로 알파벳을 다바꾸어서 하셧는데 소문자로 바꾸면서 내가 처음부터 끝까지 한번 코드를 적어보았다.
function solution(s) {
var answer = true;
// 소문자로 통일 시키고
s = s.toLowerCase();
var num = 0;
// for문으로 p와 y를 일치되게만든다
for(var i = 0; i < s.length; i++){
if(s[i] === "p"){
num++;
}
if(s[i] === "y"){
num--;
}
// 일치되었을때 true 아닐때 false값을 준다.
if(num === 0){
answer = true;
}
else{
answer = false;
}
}
return answer;
}
var str1= "pPoooyY";
var str2= "Pyy";
console.log(solution(str2));
느낀점