뚝딱햄 탈출기

[JavaScript] 엘리스 트랙 - 집에 가는 길 : 변수 선언 본문

Algorithm & Data structure/알고리즘 문제 풀이

[JavaScript] 엘리스 트랙 - 집에 가는 길 : 변수 선언

hyrmzz1 2023. 8. 9. 15:15

집에 가는 길

일을 끝낸 엘리스 토끼는 집으로 돌아가기 위해 대중교통을 이용하려고 합니다.
엘리스 토끼는 가진 돈에 따라 다른 교통수단을 이용할 예정입니다.
돈이 1,000원 이상이면 택시, 500원 이상이면 버스, 300원 이상이면 지하철을 이용할 예정이고 돈이 300원보다 없는 경우 도보를 이용해야 합니다.
엘리스 토끼가 가진 돈에 따라서 이용할 수 있는 가장 비싼 교통수단을 출력해보세요.

조건

엘리스 토끼는 최대 10,000원까지만 갖고 있습니다.

지시사항

조건에 따른 출력 결과를 택시, 버스, 지하철, 도보 중에서 정확히 출력하세요.

Tips!

조건문을 이용하여 문제를 해결해보세요.

여러 조건을 적용하기 위해서는 else if와 else를 이용하여야 합니다.

풀이 중 헷갈린 부분

변수 answer를 정의할 때 const와 let 중 무엇을 사용해야 하나?

  • const로 정의된 변수는 재할당이 불가능하고, let으로 정의된 변수는 재할당이 가능하다.
    (var도 재할당 가능하나 재선언 가능해 오류 발생해도 알아차리기 어려우므로 사용 지양)
  • 조건문에서 money의 값에 따라 answer에 하나의 값만 할당되므로 재할당 되지 않겠다고 생각해
    const answer;로 정의했다.

내 오답

function solution(money) {
	const answer;
	//const answer = "";

	if (money >= 1000){
		answer = "택시";
	} else if (money >= 500){
		answer = "버스";
	} else if (money >= 300){
		answer = "지하철";
	} else{
    	answer = "도보";
	}
	return answer;
}

// 실행 혹은 제출을 위한 코드입니다. 지우거나 수정하지 말아주세요.
module.exports = solution;

오류 발생 원인

  • const로 변수를 선언할 때는 반드시 초기값을 할당한 상태로 선언해야 한다. (재할당 금지이므로)
    • const answer = ""; 로 초기값 선언할 경우 아래 조건문에서 택시/버스/지하철/도보 로 재할당되어 오류가 발생한다.

정답

function solution(money) {
	let answer;

	if (money >= 1000){
		answer = "택시";
	} else if (money >= 500){
		answer = "버스";
	} else if (money >= 300){
		answer = "지하철";
	} else{
    	answer = "도보";
	}
	return answer;
}

// 실행 혹은 제출을 위한 코드입니다. 지우거나 수정하지 말아주세요.
module.exports = solution;

변수 answer는 let 으로 선언해야 한다.

Comments