[231107] 알고리즘 Level.0

Bora.K | 권보라·2023년 11월 7일
0

알고리즘

목록 보기
1/11
post-thumbnail

알고리즘 문제풀이 Level.0

[#01] 두 수의 차

다른 사람의 문제 풀이를 보니까 제한 사항은 따로 입력을 안했던데, 왜지?
알고리즘 풀이가 처음이라서 기본 세팅된 코드 그대로 사용해야 하는 줄 알았는데, 결과값만 맞으면 수정해도 상관이 없었다. 화살표 함수로 간단하게 표현할 수 있을 것 같다.


[#02] 두 수의 곱

이 문제는 쉽게 넘어갔다.


[#03] 몫 구하기

지난 번에 영화 검색 사이트 만들기 과제를 할 때 평점이 소수점까지 나와서 한 번 찾아봤던 적이 있었다. 그래서 바로 round 함수를 떠올렸는데, 실패했다. 그래서 유사 함수를 찾아보았다.

toFixed()

  • number 객체를 주어진 digits 만큼 소수점 이하 자리수를 문자열로 반환한다.
  • 소수점 이하가 길면 순자를 반올림, 짧으면 0으로 채운다.

→ 여기서 문제는 문자열로 반환하기 때문에 코드 실행시 결과값에 오류가 생겼다.
→ 이것을 다시 숫자로 바꿔주어야 하기 때문에 번거롭다.

Math.round()

  • 입력값을 반올림한 수와 가장 가까운 정수 값을 반환한다.

→ 또 문제가 발생했다. 반올림하기 때문에 몫을 구하는 문제에서는 적절하지 않다.
→ 해당 문제는 생각해보니 소수점 이하를 버림하는 정수 값을 반환해야 한다.

Math.ceil() : 올림
Math.floor() : 버림
Math.round() : 반올림


[#04] 나이 출력

이 문제도 간단하게 풀었는데, 다른 사람의 문제 풀이를 보다가 새로운 메서드를 발견했다.

dateObj.getFullYear()

  • 주어진 날짜의 현지 시간 기준 연도를 반환한다.

→ 문제 출제 기준 날짜가 2022년이라 출력값에는 오류가 있지만 필요한 경우가 있을 것 같다.

function solution(age) {
    return new Date().getFullYear() - age + 1;
}

[#05] 숫자 비교하기

삼항연산자를 사용하여 쉽게 풀 수 있었다. 확실히 궁금증을 가지고 찾아봤던 내용은 잘 안 잊는 것 같다. 초반에 if 함수와 삼항연산자가 같은 기능을 하는 것이 아닌가 하는 궁금증을 가지고 튜터님께 질문을 하러 갔었다. 같은 결과값을 출력할 수는 있지만, 삼항연산자가 훨씬 간단하다.

profile
Frontend Engineers

0개의 댓글

관련 채용 정보