JavaScript 문제풀이(13 ~ 15)
어스렁토끼 재를 넘는다.
문제13 : 몇 번째 행성인가요?
우리 태양계를 이루고 있는 행성은 수성, 금성, 지구, 화성, 목성, 토성, 천왕성, 해왕성으로 총 8개 입니다. 저희는 우리 태양계의 n번째 행성이 무엇인지 알고 싶습니다. 입력으로 행성의 순서를 나타내는 숫자 n이 입력됩니다. 출력으로 그 순서에 해당하는 행성의 이름을 출력해 주세요. 예를들어 1이 입력되면, 첫번째 행성인 수성이 출력됩니다.
**입출력**
입력 : 1
출력 : 수성
풀이) index 값을 가진 '배열'의 형태에서 순서대로 뽑아내기
1단계) 배열을 만들고 수성을 출력해 보자.
문제의 태양계 행성들을 순서대로 입력해주자.
배열('[]')의 형태를 갖는 'galaxy'라는 변수로 선언
수성을 불러오고 싶다면 'document.write(galaxy[0])'처럼
'galaxy'의 바로 다음, 배열에 해당하는 index('[0]')를 불러주자.
그렇다면 선언한 index에 해당하는 값이 반환된다! (index값은 0부터 시작이다!)
2단계) 입력값에 따라 행성을 출력하자.
'document.write(galaxy[0])'를 입력값에 따라 변화할 수 있도록 변수를 선언해주자.
'document.write(galaxy[i])'와 같이 '0'을 'i'로 바꿔주었다.
그리고 함수만 호출하면 사용할 수 있도록 함수로 감싸주었다.
즉, 'planet(1)'을 호출하면 '금성',
'planet(5)'를 호출하면 '토성' 과 같이 출력된다.
3단계) 그런데 배열의 index는 0부터 시작이다...
문제에서 원하는 것은 '1'을 호출했을 때, '수성'이 출력되는 것이다!
즉, 함수에 입력한 값이 'planet(1)'일 때, 'galaxy[0]'의 값을 출력해야 한다.
그렇다면 입력된 값에서 '1'이 감소한 값을 불러오면 된다!
'planet(i)'일 때, 'document.write(galaxy[i - 1])'
'function planet(1) { document.write(galaxy[1 - 1])}'
번외) 함수를 이용하지 않고, 'prompt'를 활용하는 방법.
내가 생각하지 못한 방법이다..하하..
유저가 입력하는 값을 'count'로 선언해준다.
'count'값을 '3단계)' 풀이와 같이 사용하면 간단하게 해결할 수 있다.
문제14 : 3의 배수 인가요?
영희는 친구와 게임을 하고 있습니다. 서로 돌아가며 랜덤으로 숫자를 하나 말하고, 그게 3의 배수이면 박수를 치고, 아니면 그 숫자를 그대로 말하는 게임입니다. 입력으로 랜덤한 숫자 n이 주어집니다.
만약 그 수가 3의 배수라면 '짝'이라는 글자를, 3의 배수가 아니라면 n을 그대로 출력해 주세요.
**입출력**
입력 : 3
출력 : 짝
입력 : 2
출력 : 2
풀이) 조건문(if ~ else)
1단계) 3의 배수 찾기
'%' 나머지를 출력하는 연산자를 이용하자.
'미상의 값(n)'을 3으로 나누었을 때, 나머지가 0이면 3의 배수일 것이다!
2단계) '만약 3이면 '짝'을 출력' 하는 조건 만들기
'미상의 값'을 'count'로 선언한다. 그리고
만약(if) 3의 배수이면((count % 3) == 0)
'짝'을 출력한다.(console.log('짝'))
'count'에 '3'을 넣어보면?! 정상적으로 '짝'이 출력된다!
3단계) '그렇지 않다면 그대로 출력' 하는 조건 만들기
그렇지 않다면(else)
입력한 값(count)을 그대로 출력한다.(console.log(count))
'count'에 '2'을 넣어보면?! 그대로 '2'가 출력된다!
4단계) 유저가 입력 가능한 'count'값 구조 잡기.
그렇다면 '미상의 값(count)'을 유저가 입력할 수 있도록,
'prompt()'를 활용하자!
문제15 : 자기소개
신학기가 시작되고, 아이들이 돌아가면서 자기소개를 하기로 했습니다.
만약 입력으로 `김다정`이라는 이름이 주어지면 "안녕하세요. 저는 김다정입니다."라고 출력하게 해주세요.
**입출력**
입력 : 김다정
출력 : 안녕하세요. 저는 김다정입니다.
풀이) 템플릿 리터럴
풀이1) 변수를 선언하고 앞 뒤 문자열을 붙인다.
입력하는 이름에 변수를 선언(yourName)
변수 이름을 'name'으로 하면 error다!!(window의 name에 할당된다.)
이후는 출력해야할 문자와 '+'를 이용해 변수를 붙여주는 것이다.
풀이2) ``과 ${}를 이용한다.
전체를 ``로 문자열로 만들어 주고,
문자열 내부에서 ${}를 이용해 변수를 호출할 수도 있다.