전체 글29 project2 개발일지 - 7 [Setting UI 기능 연결 마무리] Setting UI 기능 연결 마무리 목표키 설정 값을 입력 받고 저장하는 기능을 완성한다.로비에서 게임 설정을 눌렀을때 설정창 연결을 하고 esc 버튼을 통해다시 로비 창으로 넘어갈 수 있게 한다. 1. 버튼 ui 배치우선 설명하는 칸 옆에 버튼 ui를 배치해준다.상호작용 가능한 ui는 주황색을 기본적으로 배치한다.그리고 클릭 되었을 때는 빨간색으로 해당 ui가 클릭되었음을 알리며,그때 입력되는 값으로 키설정을 변경해주는게 목표다. 2. 코드작업private void ClickedKeySettingButton(PointerEventData data){ selected = data.pointerClick; selected.GetComponent().color = Color.red;} 다음은 키셋팅 버튼이.. 2025. 8. 11. 게임서버 1.멀티쓰레드 개론 멀티스레드 개론 – 게임 서버에서의 다중 작업 처리 방식게임 서버를 개발하다 보면 동시에 여러 작업을 처리해야 하는 경우가 매우 많다. 대표적으로는 수많은 유저의 패킷 처리, 월드 갱신, DB 연동, 로깅, 매치메이킹 등 서로 독립적인 흐름들이 동시에 요구된다. 이런 상황에서 효율적으로 대응하기 위해 사용하는 대표적인 기술이 멀티스레딩이다.멀티스레딩은 하나의 프로세스 내부에서 여러 실행 흐름(스레드)을 동시에 수행하는 방식이다. 이를 통해 서버는 하나의 스레드가 블로킹되더라도 전체 시스템이 멈추지 않고, 각기 다른 처리를 병렬적으로 진행할 수 있다.스레드의 기본 개념스레드는 프로세스 내에서 실행되는 가장 작은 단위로, 같은 주소 공간(메모리)을 공유하는 특징이 있다. 게임 서버 입장에서 보면, 클라이언트.. 2025. 7. 31. 백준 9655번 / S5 / C++ 문제주소 : https://www.acmicpc.net/problem/9655문제이름 : 돌 게임문제번호 :9655난이도 : S5소요시간 : 7m 8s 돌 게임 성공시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초128 MB41560272192291366.370%문제돌 게임은 두 명이서 즐기는 재밌는 게임이다.탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다.두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.입력첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)출력상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY.. 2025. 7. 29. project2 개발일지 - 6 [Setting UI 기능 연결2] Setting UI 기능 연결2 목표세팅을 저장하고 되돌리는 기능을 구현한다.버튼은 비활성화 상태에서 세팅을 바꿀 경우 활성화된다.이전 상태값과 현재 상태값을 비교해야 할 것 같다. 1. 저장, 되돌리기 버튼오른쪽 위에 비활성화 상태의 버튼을 두개 배치한다.Interactable을 꺼주면 비활성화 상태가 된다. 2. 이전 상태 저장하기저장 버튼을 활성화 하려면 이전 상태와 현재 상태를 비교해야한다.따라서 리스트로 각 설정의 값을 튜플 형태로 저장해준다.private List _sliders = new();private List _keys = new(); 이제 설정 UI가 켜질때 SettingManager에서 값을 받아와 이전상태를 저장해준다._sliders.Add((GetSlider((int)Slider.. 2025. 7. 29. project1 개발일지 - 5 [scriptable object를 활용한 Base NPC ] 목표몬스터의 ai에는 크게 Idle, Attack, Chase, Die 상태가 존재한다.각 상태는 몬스터 별로 다양하게 존재할 것이다. 예를 들어 Chase 상태에서 일정 거리를 유지하며 Attack을 한다던가,Die에서 자폭을 하고 사라진다던가...따라서 각 상태에서 다양한 부품을 만들어 조립해 여러 종류의 몬스터를 만들 수 있다.이에 scriptable object를 활용한다. 1.scriptable object를 이용한 NPCStatehttps://docs.unity3d.com/kr/2022.3/Manual/class-ScriptableObject.html ScriptableObject - Unity 매뉴얼ScriptableObject는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할.. 2025. 7. 29. 유클리드 호제법 유클리드 호제법(Euclidean Algorithm)유클리드 호제법은 두 수의 최대공약수(GCD)를 효율적으로 구하는 알고리즘이다. 기원전 300년경 유클리드가 저술한 『기하학 원론』에서 소개된 방법이며, 오랜 시간이 지났지만 여전히 가장 널리 사용되고 있다.이론 설명유클리드 호제법은 다음과 같은 성질을 기반으로 한다.a와 b의 최대공약수는 b와 a를 b로 나눈 나머지 r의 최대공약수와 같다.즉, GCD(a, b) = GCD(b, a % b)이 과정을 나머지가 0이 될 때까지 반복하면, 그 마지막 b 값이 최대공약수이다. 이를 간단히 요약하면 다음과 같다.a를 b로 나눈 나머지 r을 구한다.a ← b, b ← r로 값을 갱신한다.b가 0이 될 때까지 위 과정을 반복한다.최종적으로 b가 0이 되었을 때의 .. 2025. 7. 28. 백준 2609번 / B1 / C++ 문제주소 : https://www.acmicpc.net/problem/2609문제이름 : 최대공약수와 최대공배수문제번호 :2609난이도 : B1소요시간 : 6m 12s 최대공약수와 최소공배수 성공시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초128 MB137727797516502457.729%문제두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.입력첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.출력첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.예제 입력 1 24 18예제 출력 1 672 풀이B1 문제여서 단순하게 반복했다.최대 공약수의.. 2025. 7. 28. 백준 1173번 / B2 / C++ 문제주소 :https://www.acmicpc.net/problem/1173 문제이름 : 운동문제번호 :1173난이도 : B2소요시간 : 11m 15s 운동 성공시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초16 MB111995106465147.806%문제영식이가 운동을 하는 과정은 1분 단위로 나누어져 있다. 매 분마다 영식이는 운동과 휴식 중 하나를 선택해야 한다.운동을 선택한 경우, 영식이의 맥박이 T만큼 증가한다. 즉, 영식이의 맥박이 X였다면, 1분 동안 운동을 한 후 맥박이 X+T가 되는 것이다. 영식이는 맥박이 M을 넘는 것을 원하지 않기 때문에, X+T가 M보다 작거나 같을 때만 운동을 할 수 있다. 휴식을 선택하는 경우 맥박이 R만큼 감소한다. 즉, 영식이의 맥박이 X였다면, 1분 동.. 2025. 7. 28. project2 개발일지 - 5 [Setting UI 기능 연결] Setting UI 기능 연결 목표세팅값을 파일로 저장할수 있게한다.인터렉션된 수치를 표시한다. 1. 폰트 문제 해결이전 폰트를 사용했을 때 몇몇 글자가 깨지는 현상을 발견했다.이에 따라 폰트 에셋을 변경하였다.또한 기본적으로 제공되는 폰트 에셋이 디폴트값으로 들어가기 때문에 이를 변경한다.프로젝트 폴더에 tmp settings라고 검색하면 에셋 하나가 나온다.이곳에서 인스펙터의 default font asset을 사용하려는 에셋으로 변경한다. 이제 기존 문제가 있던 에셋을 사용하던 Text들의 폰트 에셋을 변경해준다.나같은 경우 모든 text를 사용하는 객체는 Text 로 이름을 맞추었기 때문에 일괄적으로 변경이 편했다. 2.Json과 폰트 연동 (반복 작업 줄이기)일단은 이전처럼 연결을 해준다. 일.. 2025. 7. 28. 백준 10162번 / B3 / C++ 문제주소 : https://www.acmicpc.net/problem/10162문제이름 : 전자레인지문제번호 :10162난이도 : B3소요시간 : 3m 25s 전자레인지 성공서브태스크시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초64 MB43732267322277661.690%문제3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 각각 5분, 1분, 10초이다.냉동음식마다 전자레인지로 요리해야할 시간 T가 초단위로 표시되어 있다. 우리는 A, B, C 3개의 버튼을 적절히 눌러서 그 시간의 합이 정확히 T초가 되도록 해야 한다. 단 버튼 A, B, C를 .. 2025. 7. 27. 백준 10797번 / B4 / C++ 문제주소 : https://www.acmicpc.net/problem/10797문제이름 : 10부재문제번호 :10797난이도 : B4소요시간 : 1m 34s 10부제 성공시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초256 MB27635220511976281.735%문제서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 것이다. 예를 들어, 자동차 번호의 일의 자리 숫자가 7이면 7일, 17일, 27일에 운행하지 못한다. 또한, 자동차 번호의 일의 자리 숫자가 0이면 10일, 20일, 30일에 운행하지 못한다.여러분들은 일일 경찰관이 되어 10부제를 위반하는 자동.. 2025. 7. 27. 백준 11719번 / B3 / C++ 문제주소 :https://www.acmicpc.net/problem/11719문제이름 : 그대로 출력하기2문제번호 :11719난이도 : B3소요시간 : 4m 12s 그대로 출력하기 2 성공시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초256 MB71842395163445158.771%문제입력 받은 대로 출력하는 프로그램을 작성하시오.입력입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.출력입력받은 그대로 출력한다.예제 입력 1 HelloBaekjoon Online Judge 예제 출력 1 HelloBa.. 2025. 7. 27. 이전 1 2 3 다음