호우동의 개발일지

Today :

article thumbnail
[C++] 프로그래머스 Level 2 - 큰 수 만들기
Algorithm/Programmers 2023. 1. 6. 11:39

문제 이해 단계 숫자로 이루어진 문자열이 주어지고, 그중에서 없애야 할 문자의 수 k가 주어진다. k개를 지워서 문자열 중 가장 큰 숫자를 만드는 것이다. 여기서 중요한 점은 무조건 k개를 다 써야 한다는 것이다. 문제 접근 단계 상식적으로 한번 접근해 보자. 어떤 문자열(숫자배열)일수록 크다고 할 수 있을까? 당연히 기본적으로 다른 숫자들보다 자릿수가 많으면 비교할 필요도 없이 더 큰 숫자일 것이다. 예를 들어 두 자릿수의 최솟값 (10)은, 한 자릿수의 최댓값(9)보다 무조건 큰 것처럼 말이다. 그럼 비교하는 두 숫자의 자릿수가 같다면? 가장 높은 10의 자리(숫자 배열의 첫 인덱스)가 높은 숫자가 큰 것이다. 예를 들어, "399"와 "400"을 비교하면, 가장 높은 자릿수인 '3'과 '4'만 보고..

article thumbnail
[Unity 3D] GUI를 이용한 인스펙터(Inspector) 커스터마이징

목표 오브젝트에 스크립트를 넣어 인스펙터 뷰를 커스터마이징 직렬화(Serialization) - 해당 필드를 유니티가 인식할 수 있는 상태로 만드는 것 - 유니티가 처리할 수 있는 형태로 만드는 것- Inspect를 조작하기 위해선 직렬화는 필수적인 과정 -> 유니티가 직렬화할 수 있는 오브젝트를 만들어야 한다. CustomEditor와 Editor 우선 커스터마이징 할 스크립트[CustomScript]를 작성한다. public class CustomScript : MonoBehaviour { public GameObject otherObject; public string myName; public int myHp; } 커스터마이징 에디터 스크립트[CustomEditorTest]를 CustomScript..

article thumbnail
[Unity 3D] GUI 에서의 Event의 역할 및 사용

Event OnGUI()를 호출하는 주체(OnGUI 보다 Low-Level) - 사용자와의 입력과 상호작용 - 트리거들을 공통적으로 처리하는 예약된 함수들이 정의되어 있다 - 효율성을 위해 OnGUI() 내부 코드와 현재 Event의 관계 여부에 따라 무시할 수 있음 1. 현재 이벤트가 드로잉이 아닌데, 드로잉 관련 코드를 만나면 그 코드를 무시 2. MouseClick 이벤트로 OnGUI()가 호출되면 해당 흐름에서는 Drawing 수행 코드 무시 Event 종류 Event.current: 현재 OnGUI()를 호출하게 된 Event Layout Event: Repaint 전 GUI들의 배치 값 관련 수집 이벤트 유니티 상단에 MyTool/OpenTool을 눌러 생성된 창 위에 마우스를 올리고 클릭, ..

article thumbnail
[Unity 3D] GUI Content 와 GUI Style 개념과 사용법 정리

GUI Content '무엇을 그릴까?'에 대한 클래스 아래와 같이 GUIContent를 생성하여 사용한다. private void OnGUI() { var myContent = new GUIContent(); //GUIContent 생성 myContent.text = "textText"; myContent.image = EditorGUIUtility.FindTexture("AvatarController.Layer"); EditorGUILayout.LabelField(myContent); // myContent Label 생성 myContent.tooltip = "this is ToolTip"; // 마우스 위에 대면 나오는 거 GUILayout.Button(myContent); } myContent에 ..

article thumbnail
[Unity 3D] GUI 레이아웃 시스템(Layout System) 이해하고 사용하기

GUI 레이아웃 시스템을 이해함으로써, Layout을 좀 더 세밀하게 다룰 수 있다. 예를 들어, EditorGUILayout.Label() 함수를 사용하여 여러 Label을 GUI로 만들면 세로로 Label들이 배치될 것이다. 하지만 LayoutSystem을 이해하고 지금부터 배우는 새로운 함수를 사용하면 좀 더 복잡한 배치가 가능해진다. 가로/세로 배치 // Layout을 가로로 배치한다. EditorGUILayout.BeginHorizontal(); { .. 원하는 GUI 배치 내용물 입력 } EditorGUILayout.EndHorizontal(); // Layout을 세로로 배치한다. EditorGUILayout.BeginVertical(); { .. 원하는 GUI 배치 내용물 입력 } Edit..

article thumbnail
[Unity 3D] 많이 사용되는 GUI 요소 그룹 사용법 정리

EditorGUILayout 함수 using UnityEngine; using UnityEditor; public class TestEditorWindow : EditorWindow { int intValue; float floatValue; Color colorValue; Gradient gradientValue = new Gradient(); Rect rectValue; Vector3 vector3Value; Vector3Int vectorInt3Value; UnityEngine.Object objectValue; string passwordValue; string tagValue; UnityEngine.ParticleSystemCollisionType enumValue; private void On..

article thumbnail
[Unity 3D] GUI 4가지 생성 방식과 방식 간의 차이 정리

스크립트 기본 준비 기본적으로 GUI를 사용하기 위해서는 2가지 사전 준비가 필요하다. 1. 스크립트에 UnityEditor를 사용함을 명시한다. 2. 해당 클래스의 부모를 EditWindow로 지정한다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; // UnityEditor 사용 public class TestEditorWindow : EditorWindow // EditorWindow를 부모로 지정 { } 유니티 Scene에 새로운 스크립트 TestEditorWindow를 만들어 위와 같이 수정한다. 새로운 윈도우 만들기 GUI를 만드려면 그 GUI를 그리기 위한 도화지(..

article thumbnail
[네트워크 보안] 커버로스(Kerberos) 인증 프로토콜 개념 및 특징 정리

개요 대칭키 암호를 이용하는 하나의 인증체계 장점 : 공개키 기반구조(PKI)가 요구되지 않는다. LAN과 같은 소규모 네트워크에서 사용할 수 있도록 설계 인증 및 비밀성과 무결성이 요구되는 세션키를 생성하기 위해 이용 원칙적으로 어떤 대칭암호든 커버로스로 이용 가능 → 하지만, 오늘날에는 커버로스 대신 DES가 쓰임 대칭키를 기반을 하지만 N명에 사용자에 대해 오직 N개의 키만 필요 기존 대칭키 기반 인증체계에서는 N명의 사용자가 있으면 N(N-1)2 * N^2 의 키 필요 → 대칭키 기반 인증에서는 이용자와 키의 개수는 정비례 관계가 아님 커버로스는 가능한 이유? 제3의 신뢰성 있는 기관(TTP)에 의존하기 때문 커버로스 TTP는 시스템 보안의 핵심 구성요소 → 반드시 보호 필요 → 보안상 관건 키분..