GitHub - LearningTypeScript/projects: Hands-on real world projects that will help you exercise your knowledge of TypeScript.
Hands-on real world projects that will help you exercise your knowledge of TypeScript. - GitHub - LearningTypeScript/projects: Hands-on real world projects that will help you exercise your knowledg...
github.com
문제가 너무 길어서 간단 요약.
함수 안에서 사용할 상태들
사용 가능한 자원 : 물 or 음식
날 : 초기값 1
음식 : 초기값 5
물 : 초기값 5
1~6 사이의 난수를 생성해서,
1이 나왔을 때는 사용 가능한 자원을 음식으로
2가 나왔을 때는 사용 가능한 자원을 물로 변경한다.
3~6이 나온 경우,
사용 가능한 자원의 상태가 음식이라면 음식을 생성된 난수만큼 증가시키고 자원의 상태를 제거한다.
사용 가능한 자원의 상태가 물이라면 물을 생성된 난수만큼 증가시킨고 자원의 상태를 제거한다.
사용 가능한 자원의 상태가 정해지지 않은 경우,
난수가 짝수라면 음식으로, 홀수라면 물로 설정한다.
난수 생성 이후 물과 음식을 1씩 빼고 날에 1을 더한후 다시 난수를 생성한다.
물 혹은 음식이 0이 되는 경우 false를 리턴한다.
날이 7을 지나가도 물 혹은 음식이 1 이상이라면, true를 리턴한다.
export function runCommands() {
// Declare your variables and runtime logic here! ✨
let AvailableResource: "Food" | "Water" | undefined;
let Day: 1 | 2 | 3 | 4 | 5 | 6 | 7 = 1;
let Food = 5;
let Water = 5;
while (Day < 8) {
let Dice = Math.floor(Math.random() * 6) + 1;
if (Dice === 1) {
AvailableResource = "Food";
}
if (Dice === 2) {
AvailableResource = "Water";
}
if (Dice > 2) {
if (AvailableResource === undefined) {
AvailableResource = Dice % 2 === 0 ? "Food" : "Water";
} else {
if (AvailableResource === "Food") {
Food += Dice;
AvailableResource = undefined;
}
if (AvailableResource === "Water") {
Water += Dice;
AvailableResource = undefined;
}
}
}
Food--;
Water--;
if (Food === 0 || Water === 0) {
return false;
}
Day++;
}
return true;
}
심화 문제였는데, 타입스크립트보단 자바스크립트 구현에 가까운 문제였다.
'Typescript > 러닝 타입스크립트 연습문제' 카테고리의 다른 글
(4장) Various Lawyerings - 2.Case Management (0) | 2023.04.12 |
---|---|
(4장) Various Lawyerings - 1.Aviary Classification (0) | 2023.04.12 |
(3장) Primitive Cooking - 3. Seating (0) | 2023.04.06 |
(3장) Primitive Cooking - 2. Recipes (0) | 2023.04.06 |
(3장) Primitive Cooking - 1. Ingredients (0) | 2023.04.06 |