데일리 루틴
41번 - 이상한 문자 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12930
function solution(s) {
var answer = '';
const arr = [];
const words = s.split(' ');
for(let i=0; i<words.length; i++){
for(let j=0; j<words[i].length; j++)
if(j%2 !== 0)
arr.push(words[i][j].toLowerCase());
else
arr.push(words[i][j].toUpperCase());
arr.push(' ');
}
arr.pop();
answer = [...arr].join('');
return answer;
}
42번 - 삼총사
https://school.programmers.co.kr/learn/courses/30/lessons/131705
function solution(number) {
var answer = 0;
for(let i=0; i<number.length; i++)
for(let j=i+1; j<number.length; j++)
for(let k=j+1; k<number.length; k++)
if(number[i] + number[j] + number[k] === 0)
answer++;
return answer;
}
43번 - 크기가 작은 부분 문자열
https://school.programmers.co.kr/learn/courses/30/lessons/147355
function solution(t, p) {
var answer = 0;
let temp;
for(let i=0; i<t.length-(p.length-1); i++){
temp = t.slice(i,i+p.length);
if(temp <= p)
answer++;
}
return answer;
}
개인과제
층마다 만나는 몬스터를 다르게 하고 싶어서, Monster 클래스를 통해 다양한 몬스터를 만들고 랜덤으로 조우하는 기능을 추가하려고 했다.
// 몬스터 목록
var bat = new Monster('Bat', 25, 7);
var hound = new Monster('Hound', 50, 5);
var wisp = new Monster('Wisp', 40, 6);
function copyMonster(monster) { // 몬스터를 복사해서 반환하는 함수
if (monster === null || typeof monster !== 'object')
return monster;
const copiedMonster = {};
for (let key of Object.keys(monster))
copiedMonster[key] = copyMonster(monster[key]);
return copiedMonster;
}
.
.
.
let mobNum = getRandomInt(0, 2);
let monster;
switch (mobNum) {
case 0:
monster = copyMonster(bat);
break;
case 1:
monster = copyMonster(hound);
break;
case 2:
monster = copyMonster(wisp);
break;
}
monster.hp = Math.floor(monster.hp * mult);
monster.atk = Math.floor(monster.atk * mult);
await battle(stage, player, monster);
처음에는 위와 같이 monster 변수를 선언하고, 랜덤으로 정해진 mobNum에 따라 monster에 복사해오는 방법으로 하려고 했는데, 객체를 복사해오기 위해 만든 함수인 copyMonster()가 몬스터 객체 내부의 attack()함수를 복사해오지 못하는지, 몬스터가 공격해야할 타이밍에 monster.attack() is not function 이라는 에러가 발생했다. 아직 원인 파악을 하지 못해서, 구글링을 더 해보든가 튜터님한테 질문하든가 해서 해결해야겠다.
'TIL' 카테고리의 다른 글
8/26 TIL (0) | 2024.08.26 |
---|---|
8/23 TIL (0) | 2024.08.23 |
TIL 8/21 - 데일리 루틴 40번, 개인과제 (0) | 2024.08.21 |
TIL 8/20 - 데일리 루틴 28번 ~ 39번 (0) | 2024.08.20 |
TIL 8/20 (1) - 알고리즘 문제풀이 2 (0) | 2024.08.20 |