[백준] 파이썬(Python) : 고양이(10171번)
백준 단계별 풀어보기 1단계 입출력과 사칙연산 3번 문제이다. 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 문제의 핵심 1. 문자열에서 ' 를 출력할 수 있는가? 2. 문자열에서 \(역슬..
키자드에 등록된 총 150개의 포스트를 확인하실 수 있습니다.
백준 단계별 풀어보기 1단계 입출력과 사칙연산 3번 문제이다. 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 문제의 핵심 1. 문자열에서 ' 를 출력할 수 있는가? 2. 문자열에서 \(역슬..
오늘부터 C#으로 코딩테스트 문제들을 풀어볼 생각이다. 사실 코딩테스트는 파이썬으로 보는게 가장 좋다. 만약 코딩테스트를 실제로 봐야한다면 파이썬으로 보겠지만, 현재 내가 현재 다루고 있는 것이 C#이기 떄..
백준 사이트에서 단계별로 풀어보기를 들어가면 차례로 문제를 풀어볼 수 있다. 참고로 말하자면, 이 단계별 풀어보기도 직접 풀어보니까 C#으로 풀기는 매우 어려운 것 같다. 내가 C#을 정석적으로 배웠다기 보..
백준 단계별풀이 1단계 입출력과 사칙연산의 2번문제이다. 10718번: We love kriii ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르..
입력 방식 조건식 ? 참의 값 : 거짓의 값 int a = 30; string result = a == 30 ? "삼십" : "삼십아님"; == : 조건식 "삼십" : 참의 값 "삼십아님" : 거짓의 값 using System; namespace ConditionalOperator { cl..
널 조건부 연산자 = ?. ?. 가 하는 일은 객체의 맴버에 접근하기 전에 해당 객체가 null인지 검사하여 그 결과가 참(null일때)이면 그 결과로 null을 반환하고, 거짓을 경우에는 . 뒤에 지정된 맴버를 반환한다. ?..
비트 연산자는 언제 사용하는가?? 컴퓨터는 원래 0과 1의 비트 데이터만 다루는 기계다. 그러나 다루는 데이터 형식은 1바이트 크기가 가장 작은 형태다. 바이트 단위가 데이터를 다루기에 용이한 크기이긴 하지만..
논리 연산은 참, 거짓을 사용하는 연산자이다. 비트 논리 연산자는 데이터의 각 비트를 대상으로 논리연산을 수행한다. 비트논리연산자는 &, |, ^, ~으로 4가지가 존재하고 이전 글에 관련된 내용이 정리되어있으..
문자열에서 줄 바꾸기 : \n 문자열에서 탭 치기 : \t 예제) print("안녕하세요. \t오늘 코딩입니다. \n반갑습니다.") // 출력 //안녕하세요. 오늘 코딩입니다. //반갑습니다 줄바꿈없이 코드를 한 줄에서 이어서..
인덱싱 : 문자열에서 한글자씩 가져오는 것. 예시) 리스트명[숫자] - 리스트에서 숫자에 해당하는 글자를 인덱싱하라 슬라이싱 : 특정범위를 잘라서 자른 부위 전체를 가져오는 것. 예시) 리스트명[ 시작인덱스(숫..
리스트명 뒤에 .을 찍고 함수를 적어서 사용한다. replace replace("a", "b") - 리스트에서 a를 찾아서 a를 b로 바꾼다. split split("a") - 리스트에서 a를 찾아서 a를 기준으로 리스트를 둘로 나눈다. split() -..
열거 형식을 선언하는 방식 enum 열거형식명 : 기반자료형 { 상수1, 상수2, 상수3, ... } ex) enum MessageResult { YES, NO, CANCEL, OK } 기반자료형을 생략하고 사용할 수 있다. 생략할 경우 자동으로 int를 기..
어떠한 값도 가지지 않는 변수를 선언해야할 필요가 생길 수 있다. 이럴때 Nullable 형식을 사용하면 된다. 선언하는 방식 데이터? 변수이름; ex) int? a = null; float? b = null; 다만, Nullable 형식은 값 형식..
Parse() / ToString() 메소드를 사용하면 된다. 형식이 문자열로 같다면 변수 앞에 (int)를 적어주는 방식으로 형식전환이 가능하다. ex) float a = 2.55; int b = (int)a; // b = 2; 그러나 문자를 숫자로 바꾸거..
변수는 말 그대로 변화하는 값이다. 코딩에서 변수를 사용하여 다양한 값을 넣거나 바꾸거나 한다. 반면, 상수는 변수와는 다르게 입력된 데이터를 절대로 바꿀 수가 없다. 변수를 선언해놓고 바꾸지 않으면 되지,..
유니티로 코딩을 입문했고, 거의 모든 것을 유니티를 기반으로 배우다보니까 C#을 다룬 했지만 어디까지나 유니티 한정이었다. 항상 C# 그 자체에 대한 목마름이 있었다. 이 책 저 책 좀 둘러보긴 했지만, 만족스..
어셈블리어 : 복잡한 기계어 명령을 사람이 이해할 수 있는 기호나 단어로 바꿔줌. 어셈블리어는 사람의 언어에 가깝다. 그러다보니 컴퓨터는 어셈블리어를 이해하지 못함. 이를 해결하기 위해 컴파일이라는 과정..
기본적으로 비주얼스튜디오2019에서 c# 콘솔을 실행시키면 다음과 같은 소스코드가 적혀있다. using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("Hel..
데이터 형식은 [기본 데이터 형식]과 [복합 데이터 형식]으로 이루어져있다. C#은 기본 데이터 형식이 모여서 이루어진 복합 데이터 형식을 지원한다. 복합 데이터의 형식에는 구조체, 클래스, 배열 등이 존재함...
변수를 선언하는 방식 int a; 여기서, int 는 [데이터 형식]을 나타내고, a는 식별자라고 한다. 식별자는 변수의 이름을 뜻한다. 변수를 선언한다(Declare)라고 말하는 이유는, 컴파일러에게 변수를 사용할 예정이..
값 형식 : 변수가 값을 담는 데이터 형식 = 스택 메모리 영역에 관련 있음 참조 형식 : 변수가 값 대신 값이 있는 곳의 위치를 담는 데이터 형식 = 힙 메모리 영역에 관련 있음 스택 메모리 영역과 힙 메모리 영역..
숫자 형식 / 논리 형식 / 문자열 형식 / 오브젝트 형식으로 나뉜다. 이 중에서 문자열 형식과 오브젝트 형식은 참조 형식에 해당하고, 나머지는 모두 값 형식이다. * 정수 계열 형식 byte : 부호 없는 정수 / 1..
2진수 : 0b (숫자 0과 알파벳 b) 16진수 : 0X 또는 0x ( 숫자 0과 알파벳 x ) 진수를 변경하고자 한다면 해당 리터럴을 접두사로서 사용하면 된다.
1. 컴포넌트 추가 RoverAssembly와 Parts를 모두 선택한 다음, Add Component를 눌러서 Object Manipulator NearInteractionGrabbable PartAssemblyController 를 추가해준다. 2. Object Manipulator 설정 Objec..
1. RoverExplorer에 스크립트 추가 RoverExplorer를 선택하고 Add Component를 통해서 BoundsControl과 Object manipulator를 추가해준 뒤 체크를 해제해준다. 2. 메뉴창 버튼 상호작용 설정 Menu - ButtonColle..
유니티에서 게임을 제작하다보면 폭발을 구현해야할 때가 있다. 사실 펑하고 터지면서 연기가 나는 등의 이팩트는 에셋을 이용하면 되지만, 폭발이 일어났을 때 주변에 있는 오브젝트가 밀려나거나 반동으로 날아..
홀로렌즈를 사용해서 개발을 해볼 기회가 생겼다. 일반인들이 사용하기에는 너무 고가의 제품이라서 대중적이지 않고 기업이나 교육 등 단체에서나 조금 사용하고 있다. 그러다보니 막상 개발을 하려고하니 무엇을..
가장 우선적으로 태양계를 만들어서 행성들을 공전시켜야했다. 첫번째로 행성 에셋을 가져왔다. Customizable Planet Shaders | 시각 효과 셰이더 | Unity Asset Store Add depth to your next project with Custo..
사실 우리가 살고있는 태양계에는 블랙홀이 없고, 블랙홀이 탄생하기 위해선 엄청나게 큰 질량의 별이 폭발해야되는데, 태양은 질량이 별치고는 너무 작은편이라 폭발하더라도 블랙홀이 되지 않는다. 그렇지만, 우..
1. Mixamo https://www.mixamo.com/#/ Mixamo www.mixamo.com 유니티를 다루게 되면 가장 유명한 Mixamo. 회원가입만 하면 무료로 사용할 수 있다. 캐릭터가 그렇게 많지는 않지만 프로토타입을 제작할 때는 충분..
1. Tutorials 폴더에 오브젝트를 하이어라키창에 가져온다 하이어라키창에서 Create Empty를 누르고 RoverExplorer로 이름을 변경해준다. MRTK.Tutorials 폴더 - Prefabs 안에 존재하는 RoverAssembly와 Table을..
1. 인디케이터로 사용할 오브젝트를 가져온다 MRTK.Tutorials 폴더 - Prefabs 안에 존재하는 Chevron을 하이어라키창으로 드래그앤드롭하고 이름을 Indicator로 변경. 그리고 Transform을 적절히 조절해서 가리키..
1. 상호작용을 할 오브젝트에 컴포넌트를 추가한다 RoverAssembly를 선택하고 Add Component를 눌러서 Tap To Place를 추가해준다. 해당 요소가 추가된 오브젝트가 Ray를 맞고있는 상황에서 엄지와 검지를 닿았다..
1. MRTK의 복제&사용자 설정 MixedRealityToolkit을 선택하고 Copy & Customize를 누른다. 2. Clone 생성 다음과 같은 창이 뜨면 Clone을 눌러서 복제해준다. 클론 버튼 위에 있는 Profile Name 칸에 직접 이름..
1. Create Empty로 Buttons 생성 RoverExplorer의 자식으로 Buttons를 생성해준다. 2. 버튼 오브젝트를 가져온다 MRTK.Tutorials 폴더 - Prefabs 에 존재하는 PressableRoundButton을 Buttons의 자식으로 드래그..
1. 메뉴창을 가져온다 MRTK - SDK - Features - UX - Prefabs - Menus 메뉴창이 종류별로 존재한다. 필요에 따라서 하나를 가져오면 된다. 나는 4x1을 가져왔다 2. 이름을 변경해준다 이름을 Menu로 변경했고,..
1. RoverParts 들에 컴포넌트를 추가한다 전체 선택을 한 뒤에 한번에 Add Component로 넣어주면 편하다 2. 프리팹 추가 및 설정 MRTK - SDK - Features - UX - Prefabs - Tooltips simple Line ToolTip을 방금..
유니티로 게임을 만들다보면 일정 범위 안에 존재하는 오브젝트를 찾아야하는 경우가 잦다. 예를 들면, VR에서 플에이어가 무언가를 잡을때 잡을 수 있는 반경을 설정하거나 폭발효과로 일정 주변을 날려버려야할..
void Update() { transform.forward = Camera.main.transform.forward; } 3D 게임인 경우 캐릭터명이나 상대방의 체력바가 각도에 상관없이 항상 보여야할 필요가 있을 수 있다. 플레이어가 존재하는 방향으로 항..
// 시간을 담당할 변수를 하나 만들어준다. float currTime; // 반복되는 작업이므로 업데이트 함수 안에서 코드를 입력한다. void Update(){ // 시간이 흐르게 만들어준다. currTime += Time.deltatime; // 오브..
// 시간을 표시하는 text UI를 유니티에서 가져온다. public Text gameTimeUI; // 전체 제한 시간을 설정해준다. 여기서는 180초. float setTime = 180; // 분단위와 초단위를 담당할 변수를 만들어준다. int min;..
1. 안드로이드로 스위치 플랫폼을 해준다. Ctrl + Shift + B 눌러서 빌드세팅창을 켜고 안드로이드로 변경 ( ios인 경우는 ios로 ) 스위치 플랫폼은 나중에 해도 되지만 개발 도중에 변경을 하게 되면 시간이 오..
기본적으로 ar 세팅을 끝마친 상태로 진행한다 이전 글 참고 2021.06.20 - [AR] - 유니티에서 ARCore 세팅하기 1. AR Session 추가 하이어라키 창에 AR Session과 AR Session Origin을 추가한다. AR Session Orig..
홀로렌즈2도 유니티로 개발을 진행할 수 있는데 설정이 좀 까다롭다. 상황이나 환경에 따라서 차이점이 많이 존재하겠지만, 현재 기준으로( 2021년 6월 ) 홀로렌즈2의 프로그램 개발을 위한 준비물은 다음과 같다...
1. 2019.4.28 버전으로 유니티프로젝트를 생성 저장위치에 한글이 없도록 항상 주의하자 2. 빌드세팅을 다음과 같이 설정해준다. Universal Windows Platform 탭을 선택하고 첨부한 것과 같이 세팅하여 스위치..
VR 카피 게임 프로젝트를 시작했다. 무엇을 만드는 것이 가장 공부도 많이되고 스스로도 발전할 수 있을까를 생각했고, 기존에 하던 것들과는 차이점이 있어서 재미도 있는 게임을 찾아봤다. 사실 VR 게임이 대중..
유니티에서 VR로 무언가를 만들고자한다면 기본적인 상태에서는 불가능하다. VR을 사용하기 위해서 적절한 환경을 설정해주어야한다. 일단 나는 오큘러스(oculus)를 가지고 개발을 진행하기 때문에 유니티에서 오..
DAVIGO 게임이 출시되지 않아 직접 플레이 해 볼 수가 없어서 온전히 카피할 수가 없었다. 그러다보니 개발을 진행하는 과정에서 몇가지 변경점이 있었다. 원작인 DAVIGO는 보스몹의 역할을 수행하는 VR 1인과 하..
VR은 PC와 환경이 참 많이 다르다. PC 환경에서는 UI 버튼이 존재하면 그냥 마우스로 클릭하면 되는데 VR에서는 마우스가 없고 마우스와 비슷한 걸 만들더라도, 클릭이나 버튼을 인식하는 방식을 PC와는 다르게 구..