목록전체 글 (37)
알고리즘 공부방
https://www.acmicpc.net/contest/view/1393 한양대 에리카 오픈 콘테스트 문제 풀이를 정리해보자 한다.(대회 참여하고 싶은데 주말에 시간이 안 된다,,) A - 당구 좀 치자 제발 간단한 사칙연산 문제.입력값 들어오면 계산해주면 된다.#include #include #define ll long longusing namespace std;int main(void){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; ll ans = 0, t = 0; for(int i = 0;i> k; t = k == 0 ? t - 1 : t + 1; ..
https://www.acmicpc.net/contest/view/1342 오랜만에 돌아온 대회셋 리뷰 A - 울타리 공사간단한 사칙연산 문제.X, Y 값의 최댓값과 최솟값을 입력시마다 갱신해주며 직사각형 넓이를 구하면 된다. #include #include #include using namespace std;int main(void){ int n; cin >> n; int maxx = -11, maxy = -11; int minx = 11, miny = 11; for (int i = 0; i > x1 >> y1 >> x2 >> y2; maxx = max({ maxx, x2 }); maxy = max({ maxy, y2 }); minx = min..
먼저 앞서 만든 소켓 프로그래밍이 잘 돌아가는지 검증하는 방법 중 하나가 채팅 테스트이다. 한 마디로 DummyClient 하나당 하나의 유저로 생각하고, DummyClient 숫자를 늘리면서 서버에 부하가 얼마나 오는지, 테스트를 해보는 것이다. 채팅 테스트를 구현했을 때 JobQueue를 사용하고 안 하고 차이가 얼마나 있을까? 먼저 JobQueue를 사용하지 않고 구현한 코드를 보자. class GameRoom { List _sessions = new List(); object _lock = new object(); public void Enter(ClientSession session) { lock (_lock) { _sessions.Add(session); session.room = this; ..

이번 연도에는 한 것도 많고 쓸 이야기도 많다. 그래서 한 번 회고를 써보면서 "이땐 이랬지..."생각을 해보려고 한다. 2022 - 12 (1) GAMPOT팀 마무리 12월달을 마지막으로 1년 동안 불태운 게임 프로젝트가 끝났다. 결과적으로 2022버닝비버 전시팀으로 선정되어 성공적으로 마무리한 거 같다. 이 프로젝트 애기를 하면 진짜 길어진다. 이건 나중에 따로 빼서 써보고자 한다.(진짜 너무 좋았고, 같이했던 팀원들이 너무 좋았다) (2) 졸업작품 졸업작품 주제가 확정이 됐다. 졸업작품 아이디어 경진대회에 나가 금상을 수상하면서 확정이 되었다. (이 주제 발표해준 형님 감사합니다....) 진짜 발표듣고 이건 퀄리티만 좋게 나오면 무조건 우수작 먹는 주제라 생각이 들어 반대하는 팀원들을 설득했다.. ..
먼저 PacketManager를 안 쓰고 패킷을 클라리언트와 서버가 주고받는다고 생각해보자. 기본적으로 Server에서든 Client에서든 패킷을 첫 byte는 packet의 ID로 설정할 것이다(일단 난 그렇게 함) PacketID를 통해 패킷에 맞는 Handler를 설정해줘야 할 것이다. 그렇다면 Manager를 거치지 않고 한다면 switch문과 같은 하드코딩식으로 들어갈 수 있다. 이렇게 된다면 굉장히 비효울적이다. 이것을 해결하기 위해 PacketManger를 공부 및 구현해보았다. 원초적으로 PacketManager가 하는 역할이 무엇일지, PacketManager를 사용함으로써 해결되는 문제를 생각해보자. 앞서 위에서 PacketManager를 안 쓰고 구현했을 때 하드코딩이 될 수 있다는 ..
https://www.acmicpc.net/contest/view/1215 첫 번째 나들이 www.acmicpc.net 내가 풀 수 있는 문제까지는 문제를 되게 잘 뽑았다 생각이 들었다. A - 진주로 가자! (Easy) 간단한 A문제 jinju요금 저장하고 나머지와 비교하며 진주요금보가 큰 값을 count해주면 끝 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector arr; int ans1, ans2 = 0; for (int i = 0; i < n; i++) { string s; int k..

저번 코딩테스트에서 기하문제때매 크게 데인적이 있어, 기하쪽 문제풀이를 해봐야 겠다 생각하다, 이번에 하게되었다. 1. 30962 센서 https://www.acmicpc.net/problem/30962 30962번: 센서 첫 번째 쿼리에서 조건을 만족하는 점은 $(1, 2)$, $(2, 1)$로 $2$가지이다. www.acmicpc.net 이 문제가 코테에서 나왔던 문제와 비슷한 문제이다. 먼저 생각해야할 것이 점1(x1, y1)과 점2(x2, y2)사이에 있는 후보 점을 어떻게 추려낼 것이냐가 첫 번째 고민이 될 수 있다. 문제에서 점1과 점2의 각도 사이에 원점(0, 0)에서 거리가 sqrt(w)인 점들을 찾는 것이다. 그렇다면 다음과 같은 식을 쓸 수 있다. w = (x - 0)^2 + (y - ..