728x90

분류 전체보기 336

[C++][Programmers][정렬] H-Index

[문제] https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결법] [3, 0, 6, 1, 5] 가 있을 때 h번 이상 인용된 논문 횟수가 h개 이상이고 나머지가 h번 이하로 인용되면 된다. 즉, h = 1일 때 -> 1번 이상 인용된 논문이 1개 이상이어야 함. 나머지가 1이하로 인용되어야 함. h = 2일 때 -> 2번 이상 인용된 논문이 2개 이상이어야 함. 나머지가 2이하로 인용되어야 함. h = 3 일 때 -> 3번 이상 인용된 논문이..

[C++][Programmers][정렬] 가장 큰 수

코딩테스트 연습 고득점 Kit 정렬 파트 2번 - 가장 큰 수 [문제] https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결법] 문제를 보고 든 생각... "조합함수로 숫자조합은 뽑을 수 있을거 같은데 숫자를 어떻게 합치지?" 였는데 return 이 string 인거 보고 걍 문자열로 합치면 되는구나~를 알았다. (오답) 1) 조합 돌리게 오름차순 정렬해놓기 2) 조합으로 숫자조합 뽑기 -----------------------> 시간초과 3..

[C++][Programmers][정렬] K번째 수

코딩테스트 고득점 kit 정렬파트 1번 K번째 수 [문제] https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [해결법] 벡터에서 i~j 숫자를 추출하고 오름차순 정렬한 후, k번째 수를 뽑는 문제이다. 순서대로 차근차근 하니까 금방 풀렸다. but 백만년만에 C++ 다시 잡으니 함수가 헷갈린다... 감잡자 keep going... [알아둘 것] 1. 벡터 부분추출 vector partArray(array.begin() + beginIndex, a..

[Unity] 메모리 최적화를 위한 에셋 관리

모바일 게임을 만들 때 메모리가 특히 중요하다. 메모리를 너무 많이 쓰면 OS가 앱을 죽여버리는 경우도 있다. 이런걸 어떻게 확인하냐? Unity Profiler를 앱에 물려서 메모리를 확인할 수 있다. 좀 더 자세히 보려면 Memory Profiler를 보면된다. 기본제공되진 않고 Package Manager에서 다운받는 것. Editor에서도 되지만 정확한 수치는 아니기에 Target Device 에 올려서 확인해야 한다. * 메모리에 영향을 미치는 Asset 관리 1. 중복 리소스 : Unity 는 중복 파일을 체크하지 않는다. 실수로 동일한 파일을 다른 폴더에 넣지는 않았는지 확인하자. 2. Audio 1) Force To Mono 체크하기. 2) Load Type: Decompress on lo..

[Unity] IL2CPP, Mono, JIT

C# vs C++ : GC 있음 없음 차이. C#에 GC(Garbage Collector)가 생겨서 생산성이 더 좋다. Mono, IL2CPP, Burst : 코드를 실행가능한 형태로 바꿔주는 컴파일러인 Scripting Backend의 종류 Mono는 IL2CPP 보다 빠르고 플랫폼에 독립적임. IL2CPP가 더 보안성이 높고 Android/iOS 호환가능. cf) Unity 자체 엔진은 C++이고 Script 는 C#으로 작성하는 구조. Mono : Mono는 JIT(Just-In-Time) 컴파일을 사용하고 런타임 시점에 요청시 코드를 컴파일 함 : 64bit 지원 안함. IL2CPP : IL2CPP는 AOT(Ahead-of-Time) 컴파일을 사용하고 실행 전에 전체 애플리케이션을 컴파일 함. :..

[Unity] Texture Compression 방식

* Texture 압축이 필요한 이유? GPU 에선 1Pixel 당 32Bit 를 차지한다. 흔히 압축방식으로 PNG나 JPG를 언급하는데 PNG 나 JPG 이미지 1MB 짜리를 GPU에 올리면 32 Bit 라서 4MB 로 올라간다. -> 4배가 되는 것. PNG 나 JPG 는 디스크 저장공간을 아끼기 위한 압축방식이지 GPU 공간을 아끼기 위한 압축방식이 아니다. GPU 에서 사용하는 압축방식을 사용해야 GPU 사용공간을 절약할 수 있는거다. 즉, 빠른 디코딩, 랜덤 액세스, 인코딩 상태로 메모리에 존재, 사이즈 절약(메모리, 저장장치) 등을 위해 GPU를 위한 Texture Compression이 필요하다. * 가변 비율 압축 vs 고정 비율 압축 1. 가변 비율 인코딩 //압축은 기본적으로 가변 비..

[Unity] Scriptable Object 사용법, 장점

* Scriptable Object? 파일로 저장할 수 있는 구조체라고 생각하면 이해하기 쉽다. Script를 에셋으로 만들어서 값을 저장 및 관리할 수 있기 때문이다. 특히 에셋으로 만들고 AssetBundle이나 Addressable Asset으로 관리하면 데이터 수정시 빌드&배포가 필요 없기 때문에 그 효율이 극대화 된다.(Scriptable Object 장점) * Scriptable Object 사용법 1. 정의 및 에셋 생성 using UnityEngine; [CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/SpawnManagerScriptableObject", order = 1)] public class SpawnManager..

[Udemy iOS & Swift Bootcamp] Protocol

*프로토콜: 속성이나 메소드의 형태를 미리 만들어놓는 것. 상속을 좀더 구조적으로 만들 수 있도록. 이 때, 프로토콜은 정의만 할 뿐 세부 내용은 구현하지 않는다. 껍데기만 있다고 보면 됨. 프로토콜은 클래스와 구조체에 적용될 수 있다. 예시 코드) protocol CanFly{ func fly() } class Bird { var isFemale = true func layEgg(){ if isFemale { print("The bird makes a new bird in a shell.") } } } class Egle: Bird, CanFly{ func fly() { print("The elgle flpas its wings and lifts off into the sky.") } func soar..

[Udemy iOS & Swift Bootcamp] Supporting Dark Mode

Dark Mode ? 최근 Dark Mode를 지원하는 앱이 많아지고 있다. Dark Mode란 System Mode의 Light, Dark 설정에 따라 앱도 밝고, 어두운 화면을 지원하는 기능이다. 그리고 Xcode 에서는 이를 쉽게 지정할 수 있다. 맨 아래 Appearance 버튼을 누르면 Light, Dark 모드 확인 가능 1. Label Color 이용하기 Label 컬러로 지정해주면 자동으로 System 모드에 맞춰서 하얀색, 검은색으로 변경된다. 2. Label Color 컬러 말고 Custom 컬러를 Light, Dark Color로 저장하는 법 1) Custom 컬러를 팔렛트에 저장하기 임의의 Light, Dark컬러를 지정하려면 원하는 컬러를 팔레트에 저장해두면 적용하기 편하다. 원하..

728x90