본문 바로가기
728x90
반응형

C++43

fake null 관련한 이야기 이 이야기에 앞서 c++를 조금 하셨던 분들이라면 댕글링 포인터에 대해 들어봤을 겁니다.댕글링 포인터란 포인터가 해제된 메모리 영역을 가키고 있는걸 의미합니다. 그렇다면 unity에서 fake null은 뭐냐? 말 그대로 실제로는 null인데 unity에서 null이 아니에요. 라고 하고 있는 상황입니다.Unity에서 모든 GameObject들은 UnityEngine.Object를 상속 받습니다. UnityEngine.Object란 엔진 내부는 c++이기에 c++ 객체인 native object객체애 대한 포인터를 지니고 있는 한번 감싸진 (저는 이걸 wrapper class라고 부름) 클래스입니다. (아래 이미지로 생각하면 됩니다.)문제는 Destory(gameObject)를 하면 이게 사진에 보이는 .. 2024. 6. 14.
Unity IL2CPP, JIT, AOT "최근에 동료가 Mono.JIT 사용이 90% 이상인데 이거 잘못된거 아니에요?" 라는 질문을 받고 대답해주면서 내 스스로 돌아볼겸 글을 남깁니다.* 정말 간단하게 적어놨으니 중간 중간 더 자세히 알고싶은 용어는 직접 찾아보면서 공부하고 댓글로 저한테도 공유하면서본인걸로 만들어 갑시다!   먼저 간단하게 JIT이 뭔지 AOT가 뭔지 적어보면 다음과 같다. 더 자세한건 조금만 검색해도 나온다.Just In Time (JIT)Ahead Of Time (AOT)필요할 때 그때 그때 컴파일미리 컴파일 Unity 엔진 내부는 C++로 짜여있다. 그러나 프로그래머는 C#으로 기능을 구현한다.어쨋든 우리는 C#으로 코드를 작성하고 하나의 프로그램을 만드는데 이 과정에서 컴파일과 빌드는 필수다.컴파일, 빌드가 뭔지 정.. 2024. 5. 5.
[백준]20499번: Darius님 한타 안 함? https://www.acmicpc.net/problem/20499 20499번: Darius님 한타 안 함? 그가 「진짜」이면 gosu, 「가짜」이면 hasu를 출력한다. www.acmicpc.net 문제 접근 아이디어 1) string input 으로 한번에 입력 받습니다. 2) string temp를 선언합니다. 이게 가장 중요한데 이유는 10의 자리 이상을 받기 위해섭니다. 3) for i to input.size() 수행하면서 input[i] != '/' temp += input[i]를 넣으면서 자동으로 자리수를 채웁니다. 4) input[i] == '/' 일 때 stoi(temp)를 통해 int로 변환하고 temp = ""로 비웁니다. (이때 temp = " "면 공백 들어와서 틀립니다) #i.. 2024. 2. 1.
[백준]17388번: 와글와글 숭고한 https://www.acmicpc.net/problem/17388 17388번: 와글와글 숭고한 첫 번째 줄에 숭실대학교의 참여도, 고려대학교의 참여도, 한양대학교의 참여도를 의미하는 세 자연수 S, K, H가 공백으로 구분되어 주어진다. (0 ≤ S, K, H ≤ 100) 세 대학의 참여도는 모두 다르다. www.acmicpc.net 회사에 취직하고 나서도 매일매일 백준 문제는 풀고있습니다. 왜냐! 코테를 위함보단 적어도 문제 해결력과 다른 사람들 생각도 보면서 사고 확장을 위해서지요~ 크크크 여튼 이번에 푼 문제는 stl을 나름 잘 응용하면 생각보다 재밌게도 해결할 수 있어 올려봅니다. 문제 접근 방법) 문제에서 미리 대학교는 정해져 있기에 점수를 보고 합산을 구해 100점 아래면 가장 낮은 점수인.. 2024. 1. 27.
[백준]2325번: 자료구조는 정말 최고 https://www.acmicpc.net/problem/23253 23253번: 자료구조는 정말 최고야 위 그림처럼 책이 쌓여 있으므로, 첫 번째 더미 - 두 번째 더미 - 첫 번째 더미 - 두 번째 더미 순으로 꺼내면 책 번호순으로 나열할 수 있다. www.acmicpc.net 처음 이 문제를 풀때 더미의 순서를 일정하게 유지하는 부분이 힘들었다. 이에 다양한 접근법을 시도하면서 vector를 통해 해결했다. 접근 방법 1) 우선 순위 큐를 선언한다. 이때 오름차순으로 정렬될 수 있게 설정한다. 2) 우선 순위 큐에 해당 책과 어느 더미 몇 번째에 위치하는지 저장한다. 3) lis라는 vector를 통해 각 더미의 현재 위치를 추적하는데 사용한다. 즉 lis의 각 요소 해당 더미의 현재 위치를 나타내.. 2023. 12. 22.
컴퓨터 메모리 저장 방식과 2차원 for문 관계 질문 아래 코드와 같이 2차원 배열이 있고 두 개의 이중 for문이 있을 때 어떤 접근이 더 효율적일까? (모든 상황은 다 동일하고 단순 두 개의 코드 차이만 있다고 가정한다.) 답변 당연히 1번 이중 for문 즉 행 접근이 더 효율적일 것이라 생각했다. 근거 1) 컴퓨터 메모리는 일렬로 구성되어 있다, 즉 row 우선 순서로 저장된다. 2) 따라서 이차원 배열이라도 row 여러개가 순차적으로 저장된 뒤 그 다음 column으로 이동해 row를 채우지 않을 까 생각했다. 3) 그렇기에 CPU 캐시 효율성을 높이는 접근 방법은 row먼저 접근하는 1번 이중 for문이라고 생각했다. 찾아 본 결과 내 접근이 맞았다!!! 더 나아가 2번의 경우 메모리 접근의 불연속이 생겨 CPU 캐시 미스가 더 자주 생길 수.. 2023. 12. 14.
728x90
반응형