내일배움캠프 Node.js 본캠프 54일차

김선우·2024년 10월 25일
post-thumbnail

알고리즘 문제 풀어보기

N개의 최소공배수

문제 설명

두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.

제한 사항

arr은 길이 1이상, 15이하인 배열입니다.
arr의 원소는 100 이하인 자연수입니다.

풀이 코드

function solution(arr) {
    var answer = 0;
    
    var n = 1, flag = false;
    while(!flag)
    {
        n++;
        for(i = 1; i < arr.length; ++i){
            if((arr[0] * n) % arr[i]  === 0){
                flag = true;
            } else {
                flag = false;
                break;
            }
        }
    }
    
    answer = arr[0] * n;
    return answer;
}

풀이 과정

최소 공배수를 구하는 것이므로 0번째 요소에 1씩 증가하는 숫자를 계속 곱해준다. 이 값의 나눈 나머지 값이 모두 0으로 떨어지면 모든 값의 최소공배수가 구해진다.

게임서버개발 플러스

객체지향 패턴

장점

  • 코드 재사용성
  • 가독성 및 유지보수성
  • 데이터 캡슐화
  • 다형성

단점

  • 절차 지향 패턴보다 많은 메모리와 처리 시간이 소모될 가능성이 있다.
  • 복잡하다.
  • 러닝커브가 상대적으로 높다.

라운드 트립 레이턴시(Round trip Latency)

레이턴시(Latency)

  • 한 지점에서 다른 지점으로 이동하는데 걸리는 시간.

라운드 트립 레이턴시(Round trip Latency)

  • 데이터 패킷이 송신지에서 수신지로 이동하고, 다시 수신지에서 송신지로 돌아오는데 걸리는 전체 시간.
  • 핑(Ping) 명령어롤 통해 측정됨.

레이턴시 마스킹(Latency Masking)

  • 네트워크 지연을 사용자가 느끼지 못하도록 숨기는 기술
  • 예측 및 보정, 보간, 평활화

추측항법 (Dead Reckoning)

  • 예측 및 보정
  • 이미 지난 약간의 시간(여기서는 레이턴시)만큼 예측해서 데이터 전달
    • 레이턴시가 100ms 인 상황에서 속도가 1, 1초에 1번 패킷 전달의 경우
      • 1초 뒤 보낼 패킷은 1.1초에 도착을 하니 (거리 = 속력 X 시간) 공식에 따라서 1.1 x 1 만큼의 값을 전달.
      • ‘거속시’ 공식은 ‘속도’가 아닌 ‘속력’이기 때문에 이동 방향 마다 다른 계산이 필요

0개의 댓글