본문 바로가기

공부105

소프트웨어 공학 파이썬 퀴즈 def freq(word): 빈도를 저장할 딕셔너리 생성 freq_dict = {} # 문자열에서 알파벳을 하나씩 확인하면서 빈도를 세기 for char in word: if char.isalpha(): if char in freq_dict: freq_dict[char] += 1 else: freq_dict[char] = 1 # 빈도가 높은 순서대로 출력하기 sorted_dict = sorted(freq_dict.items(), key=lambda x: x[1], reverse=True) for char, count in sorted_dict: print(char, count) 위 코드는 먼저 입력받은 문자열에서 알파벳을 하나씩 확인하면서, 빈도를 세어 딕셔너리에 저장합니다. 이후, sorted 함수를 .. 2023. 4. 9.
유니티 물리와 이벤트 함수 정리 - 힘, 충돌, 생명주기 함수 유니티(Unity)를 공부하며 물리 시스템과 이벤트 함수의 핵심 개념을 정리했다. 이번 학습은 물리 기반 힘 적용과 유니티의 이벤트 함수 동작 방식을 이해하는 데 초점을 맞췄으며, 실제 프로젝트에서 테스트하며 얻은 경험을 반영했다.1. 물리 시스템: 연속적인 힘과 순간적인 힘유니티의 물리 시스템에서 힘은 오브젝트의 움직임을 제어하는 핵심 요소다. 힘의 적용 방식은 연속적인 힘과 순간적인 힘으로 나뉜다.연속적인 힘정의: 자동차 엑셀처럼 지속적으로 가속을 추가하는 방식이다. 이미 움직이는 오브젝트에 적합하다.ForceMode:ForceMode.Force: 오브젝트의 질량을 고려해 힘을 적용한다.ForceMode.Acceleration: 질량을 무시하고 가속을 적용한다.구현 경험: 차량 이동 로직을 구현하며 .. 2023. 4. 9.
백준 12100 2048(easy) 파이썬 아이디어: dfs를 통해 5번 움직이는 모든 경우의수를 탐색. 상, 하, 좌, 우로 움직이는 경우를 5번 깊이 까지 DFS로 탐색하는 것. import sys from copy import deepcopy input = sys.stdin.readline # 입력 n = int(input()) board = [list(map(int, input().split())) for _ in range(n)] answer = 0 # 위로 def up(board): for j in range(n): pointer = 0 for i in range(1, n): if board[i][j]: tmp = board[i][j] board[i][j] = 0 # 3가지 경우로 나눠서 처리 # 포인터가 가리키는 수가 0일 때 if .. 2023. 4. 1.
개발일지: 언리얼 엔진의 핵심 개념 정리 - Pawn, Character, Controller, Actor 언리얼 엔진(UE4/UE5)을 공부하며 게임플레이의 핵심 구성 요소인 Pawn, Character, Controller, 그리고 Actor의 개념을 정리했다. 이번 학습은 언리얼 엔진의 객체 구조와 클래스 계층을 이해하는 데 초점을 맞췄으며, 실제 프로젝트에 적용 가능한 지식을 기록한다.1. Pawn (폰)정의: Pawn은 제어 가능한 게임 오브젝트로, 플레이어의 아바타를 나타내는 액터 유형이다. Controller에 의해 소유(Possess)되어 플레이어나 AI의 입력에 따라 움직인다.구현 경험: 초기에는 Pawn과 Controller의 관계를 혼동했으나, Pawn이 단순히 "제어되는 객체"라는 점을 이해하며 명확해졌다. 예를 들어, RTS 카메라 컨트롤러를 Pawn으로 설정해 입력 처리를 구현한 경험.. 2023. 3. 26.
개발일지: 언리얼 블루프린트로 구현한 RTS 카메라 제어 시스템 이번 프로젝트에서 RTS 스타일의 카메라 제어 시스템을 언리얼 엔진의 블루프린트를 활용해 구현했다. 카메라의 움직임과 사용자 입력에 따른 동작을 자연스럽고 직관적으로 만드는 데 초점을 맞췄으며, 각 기능은 테스트와 피드백을 통해 최적화하려고 노력했다. 아래는 구현한 기능과 개발 과정에서의 주요 기록이다.1. 기본 구조 설정RtsCamera: 카메라를 SpringArm 컴포넌트에 연결해 부드러운 카메라 이동과 회전을 구현했다. SpringArm의 설정을 조정하며 카메라의 거리와 각도를 최적화했다.RtsCameraController: Pawn 클래스로 구성해 플레이어의 입력을 처리하도록 설계했다. 초기에는 컨트롤러와 카메라 간의 연결에서 약간의 지연이 발생했으나, Tick 이벤트의 최적화로 문제를 해결했다... 2023. 3. 26.
공부한 것들 정리 다 배운건데 지나고 나면 다 까먹는다. 다시 정리하자! 유니티 이벤트 함수 실행순서: https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html 이벤트 함수의 실행 순서 - Unity 매뉴얼 Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다. docs.unity3d.com ----------------------------------------------------------------------------------------------------------------------------------- 운영체제에서 메모리.. 2023. 3. 23.
개발일지: 언리얼 엔진 튜토리얼 시스템 개발 - 블루프린트, 입력 처리, Enum 활용 언리얼 엔진(Unreal Engine)을 공부하며 진행한 프로젝트로, 튜토리얼 시스템과 키보드 기반 카메라 움직임 제한 기능을 개발했다. 이번 프로젝트는 블루프린트를 활용한 게임 로직 구현과 입력 처리, 그리고 최적화에 초점을 맞췄다. 여러 시행착오를 겪으며 새로운 개념을 익히고, 선배의 조언으로 문제를 해결한 경험을 기록했다.1. 프로젝트 개요프로젝트 목표: 언리얼 엔진의 블루프린트를 활용해 튜토리얼 시스템을 구현하고, 키보드로 조작하는 카메라 움직임에 경계 제한을 추가한다.주요 기능:튜토리얼 시스템: 플레이어가 튜토리얼 단계를 순차적으로 진행하도록 Enum과 인덱스를 활용한 UI 버튼 제어 로직을 구현.카메라 움직임: 키보드 입력으로 카메라를 이동하되, 지정된 범위를 벗어나지 않도록 제한.구현 환경:.. 2023. 3. 10.
백준 18108번 c++ https://www.acmicpc.net/problem/18108 18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net #include using namespace std; int student[31], i = 28, nam; int main() { while (i--) { cin >> nam; student[nam] = 1; } for (i = 1; i 2023. 2. 27.
언리얼 튜토리얼과 UMG 제작 공부 일지 http://ndcreplay.nexon.com/NDC2019/sessions/NDC2019_0029.html#k%5B%5D=UMG NDC Replay 본 홈페이지에 게재, 공개된 발표자료, 동영상, 이미지, 스크립트 등 일체의 저작물(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물 ndcreplay.nexon.com NDC에 올라온 글과 https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/UMG/ UMG UI 디자이너 UI 요소 제작을 위한 UMG, 언리얼 모션 그래픽 사용 안내입니다. docs.unrealengine.com 언리얼 UMG 공식문서와 https://dev.epicgames.c.. 2023. 2. 26.