[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개의 댓글