1. string.substring(a,b)
- a번째부터 b번째 전까지 문자열 자르기
let str = "Hello";
console.log(str.substring(2)); // "llo"
console.log(str.substring(2, 4)); // "ll"
console.log(str.substring(5)); // "" -> 아무것도 안나옴 : 마지막 문자열의 index +1 을 넣으면 "빈 문자열" 반환
console.log(str.substring(2, str.length)); // "llo" -> 2부터 끝까지
2. string.repeat(n)
console.log("abc".repeat(1)); // "abc"
console.log("abc".repeat(2)); // "abcabc"
console.log("abc".repeat(2.7)); // 인자가 소수일 경우: 내림한 정수만큼 repeat // "abcabc"
console.log("abc".repeat(-1)); // 인자가 음수이거나
console.log("abc".repeat(1 / 0)); // 무한대일 때 => Range Error
3. 프로그래머스 문제
연속하는 두 정수 left 와 right 가 있을 때, 그 사이에 정수들의 약수의 갯수가 짝수면 그 수를 더하고, 홀수면 그 수를 빼는 함수를 만들어 보시오.
나의 첫 번째 답변
function solution(left, right) {
for (let num = left; num <= right; num++) {
let sum = 0;
let count = 0;
for (let i = 1; i <= num; i++) {
if (num % i === 0) {
count++;
}
}
if (count % 2 === 0) {
sum += num;
} else {
sum -= num;
}
}
return sum;
}
어디가 틀렸을까?
- 바로 let sum = 0 이라는 부분이 for문 안에 있어서 틀렸다.
왜냐면, for문 안에 있기 때문에 for문을 돌 때마다 sum의 값이 0으로 초기화되기 때문이다.
답은
function solution(left, right) {
let sum = 0;
for (let num = left; num <= right; num++) {
let count = 0;
for (let i = 1; i <= num; i++) {
if (num % i === 0) {
count++;
}
}
if (count % 2 === 0) {
sum += num;
} else {
sum -= num;
}
}
return sum;
}
이거였다.
for문 안에 있으면 새로 돌 때마다 초기화된다는 걸 기억하자!
느낀점
오늘,, 진짜 지금까지의 부트캠프 나날 중 최악의 날 이었다.
급성 위장염이 동시에 와서 원인도 모르겠고 약을 먹어도 너무너무 아프고 위아래로 뿜고...
시간은 채워야되고 내일은 개인프로젝트 마감일이라...ㅠㅠ뿌엥
진짜 힘들었다.
내일은 부디 낫고 싶다.
새벽에 응급실 갈 까봐 너무 무섭다 지금
'TIL' 카테고리의 다른 글
2024.01.24 TIL #프로그래머스-행렬의덧셈 #함수의실행-매개변수호출 (0) | 2024.01.24 |
---|---|
2024.01.23 TIL #typeof 연산자 #isNaN() #props #객체업데이트 (1) | 2024.01.24 |
2024.01.18 TIL #Spread Operator #Splice(a,b,c) #forEach와 for문의 return (0) | 2024.01.18 |
2024.01.17 TIL #splice #slice #Array(num) #indexOf() #join() (0) | 2024.01.17 |
2024.01.16 TIL #includes( ) #hasOwnProperty( ) #Object.keys( ) / Object.values( ) (0) | 2024.01.16 |