불리언은 두 가지 값 중 하나를 나타내요: true 또는 false예요.
논리 연산자(!, &&, ||)는 보통 불리언 값과 함께 사용하며, 불리언 값을 반환해요.
이 연습 문제에서는 친구가 개발 중인 새로운 RPG 게임의 퀘스트 로직을 구현해요. 게임의 주인공은 사납고 충직한 반려견을 데리고 다니는 용감한 소녀, Annalyn이에요. 그런데 안타깝게도 Annalyn의 가장 친한 친구가 숲에서 열매를 찾던 중 납치되는 사건이 벌어져요. Annalyn은 가장 친한 친구를 찾아 구출하려고 하고, 원한다면 이 여정에 반려견을 데리고 갈 수도 있어요.
친구의 흔적을 한참 따라간 끝에, Annalyn은 친구가 갇혀 있는 야영지를 발견해요. 납치범은 둘이에요. 힘센 기사와 교활한 궁수죠.
납치범들을 찾은 Annalyn은 다음 중 어떤 행동을 할 수 있을지 생각해요:
해야 할 일은 네 가지예요. 숲에서 만난 세 인물의 상태와 Annalyn의 반려견 동반 여부에 따라 위 행동들을 할 수 있는지 판단하는 로직을 구현하는 거예요.
기사가 깨어 있는지를 나타내는 불리언 값을 받는 canExecuteFastAttack이라는 함수를 구현해요.
이 함수는 그 인물의 상태에 따라 '빠른 공격' 행동이 가능하면 true를 반환해요.
그렇지 않으면 false를 반환해요:
const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false
기사, 궁수, 죄수가 각각 깨어 있는지를 나타내는 불리언 값 세 개를 받는 canSpy라는 함수를 구현해요.
이 함수는 인물들의 상태에 따라 '첩보' 행동이 가능하면 true를 반환해요.
그렇지 않으면 false를 반환해요:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
궁수와 죄수가 각각 깨어 있는지를 나타내는 불리언 값 두 개를 받는 canSignalPrisoner라는 함수를 구현해요.
이 함수는 인물들의 상태에 따라 '죄수에게 신호 보내기' 행동이 가능하면 true를 반환해요.
그렇지 않으면 false를 반환해요:
const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
불리언 값 네 개를 받는 canFreePrisoner라는 함수를 구현해요.
처음 세 매개변수는 기사, 궁수, 죄수가 각각 깨어 있는지를 나타내요.
마지막 매개변수는 Annalyn의 반려견이 함께 있는지를 나타내요.
이 함수는 인물들의 상태와 Annalyn의 반려견 동반 여부에 따라 '죄수 구출' 행동이 가능하면 true를 반환해요.
그렇지 않으면 false를 반환해요:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Exercism에 가입하고 JavaScript 트랙을 개념 37개연습 문제 159개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.