• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

시간 복잡도 관련 질문입니다

21.09.06 16:38 작성 조회수 56

0

안녕하세요.

강의를 수강하던 와중에 궁금한 점이 생겨 질문드립니다.

서버에서 packet 관련 로직을 처리하는데 n^2가 소요된다고 들었던 것 같습니다.

예를 들면 n개의 client에서 각각 1개의 packet을 받을 경우

1.

for(packet in packets){

  result = handlePacket(packet)

  for (client in clients){

    sendPacket(result);

  }

}

이런 식으로 n^2이 되는 것 같은데

패킷을 모아서 처리하게 된다면 

2.

for(packet in packets){

  result = handlePacket(packet)

}

for (client in clients){

    sendPacket(result);

}

이런식으로 n+n이 되는거 아닌가요?

또한 2와 같은 방식으로 코드를 짜시지 않은 이유가 궁금합니다.

2와 같은 방식이 불가능한건가요?

답변 1

답변을 작성해보세요.

0

result = handlePacket(packet)

이 부분이 계속 바뀌기 때문입니다.
물론 좀 기다렸다가 패킷을 모아서 보낸다거나 할 수는 있습니다.