본문 바로가기

분류 전체보기

(233)
[프로그래머스/C++] 2 x n 타일링 미숙한 블로그 주인이 코딩테스트 문제를 풀어가는 과정을 담은 글입니다. 이 풀이가 효율적인 풀이가 아닐 수 있으며, 부정확한 정보가 많이 있을 수 있습니다. 보완해야할 점이 있다면 댓글로 남겨주세요! https://programmers.co.kr/learn/courses/30/lessons/12900# 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 2 x n 타일링 문제 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로..
[프로그래머스/C++] 교점에 별 만들기 미숙한 블로그 주인이 코딩테스트 문제를 풀어가는 과정을 담은 글입니다. 이 풀이가 효율적인 풀이가 아닐 수 있으며, 부정확한 정보가 많이 있을 수 있습니다. 보완해야할 점이 있다면 댓글로 남겨주세요! https://programmers.co.kr/learn/courses/30/lessons/87377 코딩테스트 연습 - 교점에 별 만들기 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [..
[프로그래머스/C++] 양궁대회 미숙한 블로그 주인이 코딩테스트 문제를 풀어가는 과정을 담은 글입니다. 이 풀이가 효율적인 풀이가 아닐 수 있으며, 부정확한 정보가 많이 있을 수 있습니다. 보완해야할 점이 있다면 댓글로 남겨주세요! https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 양궁대회 문제 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양..
[프로그래머스/C++] 피로도 미숙한 블로그 주인이 코딩테스트 문제를 풀어가는 과정을 담은 글입니다. 이 풀이가 효율적인 풀이가 아닐 수 있으며, 부정확한 정보가 많이 있을 수 있습니다. 보완해야할 점이 있다면 댓글로 남겨주세요! https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 피로도 문제 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험..
[프로그래머스/C++] 등굣길 미숙한 블로그 주인이 코딩테스트 문제를 풀어가는 과정을 담은 글입니다. 이 풀이가 효율적인 풀이가 아닐 수 있으며, 부정확한 정보가 많이 있을 수 있습니다. 보완해야할 점이 있다면 댓글로 남겨주세요! https://programmers.co.kr/learn/courses/30/lessons/42898# 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 등굣길 문제 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n ..
[Network] 네트워크 토폴로지 멀티플레이 게임에서 중요하게 다루어야 할 문제가 있습니다. 플레이어들 사이에서 게임 상태 갱신을 어떻게 처리할지, 객체 리플리케이션을 써야할지, 입력 상태만 공유할 것인지, 컴퓨터 상호 간에 전달된 게임 상태가 어느 한쪽에서 올바르지 않다고 판단되면 어떻게 해야 할지 등의 문제들이 있습니다. 네트워크 토폴로지(network topology)란 컴퓨터 네트워크의 요소들을 물리적으로 연결해 놓은 것, 또는 연결 방식을 말합니다. 게임 분야로 한정한다면, 게임에 접속한 컴퓨터들을 어떤 구조로 연결할지 정한 뒤, 그 플레이어들이 최신 상태를 공유하게끔 구조화하는 방식입니다. 클라이언트 - 서버(CS) 토폴로지 게임 인스턴스 하나를 서버로 두고 나머지 게임 인스턴스는 그 서버에 접속하는 클라이언트가 됩니다. 각 ..
[C++/Network] 객체 리플리케이션 리플리케이션은 객체의 상태를 한 호스트에서 다른 호스트로 복제 전달하는 것입니다. 직렬화를 하기 전 리플리케이션을 하기 위해 호스트는 다음의 준비 작업이 필요합니다. 1. 패킷 1. 패킷에 객체의 상태를 담은 패킷이라고 표기 리플리케이션이 아닌 다른 목적으로도 통신을 할 수 있기 때문에, 아래의 열거자를 사용해 패킷의 종류를 확인할 수 있게 합니다. // PT_HELLO : 관례로 호스트가 서로 접속하면 맨 처음에 일종의 '인사' 패킷을 주고받는 것입니다. // PT_ReplicationData : 데이터를 리플리케이션 하겠다는 것입니다. // PT_Disconnect : 연결 해제 절차를 요청하는 것입니다. // PT_MAX : 패킷 종류 열거형의 최댓값입니다. enum pakcetType { PT_H..
[C++/Network] 객체 직렬화 직렬화(serialization)란 어떤 객체가 랜덤 액세스(random access) 가능한 현태로 메모리상에 존재할 때, 이를 일련의 여러 비트로 변환해 길게 나열하는 것입니다. 외부의 시스템이 이용할 수 있는 포맷으로 변환하는 작업이라고 할 수 있습니다. 직렬화 직렬화가 필요한 이유는, 아래와 같은 플레이어 상태에 대한 클래스 PStatus가 있다고 해보겠습니다. 이를 직렬화 없이 다른 호스트로 전송을 한다면 다음과 같은 방법으로 전송을 할 것입니다. class PStatus { public: PStatus() { hp = 10; mp = 10; } private: int hp; int mp; }; void send_obj(SOCKET s, const PStatus* ps) { send(s, rei..