Study 5.

WorldWannyWeb.·2021년 3월 29일
0

Study

목록 보기
5/35
post-thumbnail

2021-03-29


2개의 코드 문제, 2개의 면접대비 문제


1. 문자열 다루기 기본(Programmers)

문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

제한 조건
s는 길이 1 이상, 길이 8 이하인 문자열입니다.

입출력 예
s return
"a234" false
"1234" true

Answer

code

function solution(s) {
  let num = Number(s);
  if ((s.length === 4 || s.length === 6) && num === parseInt(s)) {
    return true;
  } else {
    return false;
  }
}

description
문자열의 길이가 정해졍있고, 숫자로만 구성되어있지 않으면, false를 return 해줘야한다. 일단 길이가 4 또는 6이므로 or연산자를 사용해주었고, 숫자로만 구성되어야하므로, 변수 num에 Number()로 숫자인지 아닌지 비교해주었다.

2. 2016년(Programmers)

문제 설명
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT

입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.

제한 조건
2016년은 윤년입니다.
2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

입출력 예
a b result
5 24 "TUE"

Answer

code

function solution(a, b) {
  const week = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
  const year = '2016';
  const month = a;
  const day = b;
  let answer = week[new Date(year + '-' + month + '-' + day).getDay()];
  return answer;
}

description
a월 b일이 무슨요일인지 찾는 문제이다. Date와 getDay함수를 이용해 문제를 풀었다. getDay는 무슨요일인지 찾을 수 있는데, 숫자로 표현해준다. 일요일이라면 숫자 0으로 return 해준다. 요일을 찾아주긴하지만, string을 return해야하기 때문에 이부분에서 고민했는데 요일을 선언해주고, week[i]번째 요일로 표현해주면 getDay를 사용할 수 있었다.


[Javascript Question]

1. let 과 var의 차이점과 활용도를 알려주세요

Answer.
var와 let은 변수 선언시에 사용합니다. var는 var를 선언하기도 전에 사용이 가능하고, 어느곳에서나 접근이 가능한 global scope을 가집니다. var는 어디에 있는 가장 먼저 선언이 불려지는 hoisting 때문에 선언되지도 않은 값들이 할당되어지는 일이 발생할 수 있기 때문에 사용하지 않는 것이 좋습니다. 이런 단점을 보완하기 위해서 ES6문법에 let이 추가가 되었는데요. let은 var처럼 아무데서나 불리지 않는 block scope을 가지고 있어 {} block안에서만 사용되고, 변수에 재할당이 가능합니다.

2. hoisting에 대해 설명해주세요.

Answer.
hoisting 이란 어디에 선언했나에 상관없이 항상 선언을 맨위로 끌어올리는 것을 말합니다. 쉽게 예를 들자면, var hoisting을 말할 수 있는데요. 말 그대로 var는 global scope를 가지고 있어서 언제 어디서든지 선언을 가장 맨위로 끌어올리기 때문에, block과 상관없이 변수를 아무데서나 부를 수 있습니다.

profile
와니완의 월드와이드와니웹🐥

0개의 댓글