2024.01.05 TIL - 알고리즘(시간복잡도, 배열 / 몫 구하기)

Innes·2024년 1월 5일
0

TIL(Today I Learned)

목록 보기
31/147
post-thumbnail

📘 오늘의 공부

  • 알고리즘 특강(시간복잡도, 배열)
  • 알고리즘 문제풀이(몫 구하기)
  • js 문법 강의 2회독

📝 알고리즘

알고리즘 특강(시간복잡도, 배열)

  • 시간복잡도 : 최악의 경우를 기준으로 계산해야함
    문제해결 거리는시간과 입력 함수의 관계
    알고리즘 구현시 짧은시간 가능하게함
    수행성능을 최악의상황을 가정하여 정량화하는 방법

  • 공간복잡도
    중요도 높지 않음
    코드 최적화해서 비용 절감할수있게 해줌

  • 알고리즘에서 자주 나오는 자료구조
    배열, 링크드리스트

  • bigO

    • big-O = O(N^2)
  • 반복문 & 배열 -> 영혼의짝궁

  • 배열의 대표기능
    조회 - (0(1)) 조회시간을 가진다는 큰 장점!
    삽입&삭제 - 삭제 혹은 null 만들어도 흔적은 그대로!

알고리즘 문제풀이(몫 구하기)

  • 시도
    • 1차시도 : 나눈 값 - 나머지
      (결과 : 2개 중 1개 성공)
      function solution(num1, num2) {
        0 < num1, num2 <= 100;
        var answer = num1/num2 - num1%num2;
        return answer;
      }
    • 2차시도 : Math.round() 써서 나눈 값을 반올림 후 나머지를 빼기
      (결과 : 2개 성공 -> 채점하니 오류 발생, 정확도 약 33%)
      function solution(num1, num2) {
        0 < num1, num2 <= 100;
        var answer = 
        Math.round(num1/num2) - num1%num2;
        return answer;
      }
    • 3차시도 : 풀이 참고하여 다시 작성 (Math.floor(숫자))
      function solution(num1, num2) {
        if (0 < num1, num2 <= 100) {
            return Math.floor(num1/num2);
        }}
      ex) 나눈 값이 3.5인 경우 몫만 구하려면 소수점을 버리면 끝!
      따라서, 소수점 이하는 버리는 Math.floor()를 사용하면 됨

💡 새롭게 알게된 사항

Math.round(숫자); : 반올림
입력받은 숫자의
소수점 이하의 값이 0.5보다 크면, 입력받은 수보다 다음으로 높은 절대값을 가지는 정수를 리턴합니다.
소수점 이하의 값이 0.5보다 작으면, 입력받은 수보다 절대값이 더 낮은 정수를 리턴합니다.
소수점 이하의 값이 0.5와 같으면, 입력받은 수보다 큰 다음 정수를 리턴합니다.
(출처: 어제 오늘 내일:티스토리)
Math.floor(숫자); : 소수점 이하 버리기(정수만 남기기)

profile
무서운 속도로 흡수하는 스폰지 개발자 🧽

0개의 댓글