No Silver Bullet.
문제16 : 로꾸거
문장이 입력되면 거꾸로 출력하는 프로그램을 만들어 봅시다.
**입출력**
입력 : 거꾸로
출력 : 로꾸거
풀이) 'split()', 'reverse()', 'join()'의 활용

1단계) split('')
가장 먼저 각 단어들을 움직여야 하기 때문에 배열로 만들어 주자.
'거꾸로' 라는 문자열을 'split('')'을 이용해, 각각 하나의 단어로 쪼개주고 배열로 만들어준다.
= ['거', '꾸', '로']

2단계) reverse()
'reverse()' 메서드를 이용해 출력한 배열을 뒤집어 준다.
= ['로', '꾸', '거']
그것을 다시 새로운 변수('reversedStr')로 선언!

3단계) join()
뒤집었다고 끝난게 아니다. 이것은 여전히 배열인 상태다!
'join()'을 이용해서 배열의 상태인 'recersedStr'을 문자열로 붙여준다.
= '로꾸거'
그것을 다시 새로운 변수('reversedStrJoin')로 선언!

4단계) prompt()
입력하는 값에 따라 출력 가능하도록 만들자.
'prompt()'를 이용하자!!
문제17 : 놀이기구 키 제한
유주는 놀이공원 아르바이트 중입니다. 그런데 놀이기구마다 키 제한이 있습니다.
유주가 담당하는 놀이기구는 키가 150cm 이상만 탈 수 있습니다.
입력으로 키가 주어졌을 때
키가 150이 넘으면 YES를,
틀리면 NO를 출력하는 프로그램을 작성하세요.
풀이) if ~ else 조건문

값을 입력하는 'prompt'를 변수로 선언한다.
만약 키가 150 이상이라면(if(height >= 150))
'YES'를 출력하고(console.log('YES')),
아니라면(else) 'NO'를 출력한다.(console.log('NO'))
문제18 : 평균 점수
영하네 반은 국어, 수학, 영어 시험을 보았습니다. 영하는 친구들의 평균 점수를 구해주기로 했습니다.
공백으로 구분하여 세 과목의 점수가 주어지면전체 평균 점수를 구하는 프로그램을 작성하세요.
단, 소숫점 자리는 모두 버립니다.
**입출력**
입력 : 20 30 40
출력 : 30
풀이) 천천히 생각하면서 풀자

1단계) 평균값을 편하게 출력하는 방법...
하지만 굉장히 무식한 접근이라고 할 수 있겠다...
사용성도 안 좋고, 가변적이지 못하다.

2단계) 차근차근 처음부터 생각하자. 먼저 공백으로 구분한다.
이전에 사용한 적이 있는 'split()'을 활용하여 공백을 기준으로 나눠지는
배열을 만든다. ('20 30 40'.split(' ');)
만들어진 배열을 활용하기 편하도록 변수로 선언.(subject)
합계를 출력할 변수(sum), 평균을 출력할 변수(subAverage)를 미리 선언해 놓음으로서,
전체적인 흐름을 생각할 수 있다.
자, 그럼 합계가 누적된 sum값을 만들어 내야겠지?

3단계) 그러고 보니 문자열이네
sum에 배열의 합계가 누적되는 반복문을 만들자! ('sum = sum + i' ...를 하려고 보니?)
subject라는 변수는 생각해보니 '문자열'로 이루어진 변수다. 이것을 '숫자열'로 바꿔주어야 한다.
'parseInt(string, 진수)'라는 함수를 사용하여 '숫자열'로 만들어 줄 수 있다!
그리고
우리는 'subject'의 배열에서 index(key)에 해당하는 값(value)이 필요하다.
즉, 'i'는 'index'을 순회할 것이고, 'subject[i]'를 함으로써 값(value)을 뽑아낼 수 있다.
'i = 0' 일 때, 'subject[0] = 20'이 되고,
'i = 1' 일 때, 'subject[1] = 30'이 되고,
'i = 2' 일 때, 'subject[2] = 40'이 되겠다.
무사히 '숫자열'로 바꿔준 값을 새로운 변수(numSubject)로 선언하고
'sum'에 누적되는 값을 만들 수 있다!
'sum += numSubject'(sum = sum + numSubject)

4단계) 합계까지 구했다면 이제는 평균이다.
'2단계'에서 미리 선언해 두었던 'subAverage'를 출력해주기만 하면 끝이다!

번외) 그런데 이상한 것은 반복문의 위에 선언되어 있으면 정상적인 값이 출력되지 않는다...
확인 후 업데이트 하겠다.

5단계) 마지막 조건인 소수점 버림. 이제 끝이다.
출력되는 값인 'subAverage'에 'Math.floor()'를 활용하여 '소수점 버림'을 실행하자!
'console.log(Math.floor(subAverage))'

6단계) 이대론 아쉬우니 역시 입력할 수 있게... 마무리까지
고정적인 값을 가지던 'subject'를 입력하는 값에 따라 출력할 수 있도록 만들어 주자!
'5단계'의 '20 30 50'만 'prompt()'로 바꿔주면 된다.
'Start JavaScript' 카테고리의 다른 글
| JavaScript 문제풀이(22 ~ 24) (0) | 2021.12.10 |
|---|---|
| JavaScript 문제풀이(19 ~ 21) (0) | 2021.12.09 |
| JavaScript 문제풀이(13 ~ 15) (0) | 2021.12.07 |
| JavaScript 문제풀이(10 ~ 11) (0) | 2021.12.06 |
| JavaScript 문제풀이(7 ~ 9) (0) | 2021.12.03 |