Start JavaScript

JavaScript 문제풀이(16 ~ 18)

granpa CLOCK 2021. 12. 8. 23:19
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