일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 크래프톤정글4기
- pintos
- 4기
- TiL
- 알고리즘수업-너비우선탐색2
- 핀토스
- 유니티
- 전쟁-전투
- 다익스트라
- 연결리스트
- 추상클래스와인터페이스
- 네트워크
- C
- project3
- 크래프톤정글
- 이벤트 함수 실행 순서
- 백준
- 크래프톤 정글 4기
- 크래프톤 정글
- anonymous page
- c#
- 오블완
- 티스토리챌린지
- 파이썬
- KRAFTON JUNGLE
- User Stack
- Unity
- BFS
- kraftonjungle
- 알고리즘
- Today
- Total
목록전체 글 (174)
말감로그
객체지향 프로그래밍객체지향 프로그래밍(OOP)은 객체와 클래스 중심으로 코드를 구성합니다.추상화, 캡슐화, 상속성, 다향성 개념을 통해 객체 지향 프로그래밍에서 유연하고 확장성을 높일 수 있는 코드를 작성할 수 있습니다. 1. 추상화 복잡한 시스템에서 불필요한 세부사항을 숨기고, 중요한 속성과 기능만을 노출하여 단순화하는 개념2. 캡슐화데이터를 보호하고 클래스의 내부 구현을 외부에 숨기는 개념으로, 클래스 내부의 데이터를 외부에서 직접 접근하지 못하게 하고, 대신 메소드를 통해 접근하도록 한다.3. 상속성객체가 다른 객체의 특성을 물려받는 작업을 말하며, 상속을 통해 기존에 구현된 클래스의 코드 재사용이 가능해지며 계층구조를 형성하게 된다. 4. 다향성동일한 메소드를 호출하지만 매개변수에 따라 다른 작동..
Time.deltaTime이란 무엇인가요?Time.deltaTime은 이전 프레임과 현재 프레임 사이에 발생한 시간 간격을 나타냅니다.이를 사용하는 주된 이유는 프레임 속도의 차이에 관계없이 일관된 결과를 보장하기 위해서입니다. 예를 들어, Update() 메서드에서 객체를 매 프레임마다 일정한 속도로 이동시킬 때, 사용자의 하드웨어 환경에 따라 프레임 레이트가 달라지기 때문에 Update() 호출 횟수도 달라집니다. 이때 Time.deltaTime을 활용하여 다양한 컴퓨터 환경에서도 객체의 이동 속도를 일관성있게 적용시킬 수 있습니다. 또한 Time.deltaTime은 물리 계산이나 시간에 기반한 기능을 구현할 때에도 사용됩니다. 유니티로 타이머를 구현하는 알고리즘을 설명해주세요.1. Update의 ..
유니티 생명 주기Unity의 생명주기는 유니티 엔진의 게임 개발 과정에서 매우 중요한 개념입니다.게임 오브젝트가 생성되어 화면에 나타나고, 게임이 진행되어 오브젝트가 사라지기까지의 일련의 과정을 의미합니다. * MonoBehaviour 클래스는 게임 오브젝트의 동작을 정의하는 기본 클래스입니다. 이 클래스의 여러 메서드들은 Unity의 생명 주기를 통해 자동으로 호출됩니다. Awake vs Start둘 다 클래스의 초기화에 사용되는 이벤트 함수로 호출 시기에 따른 차이가 있습니다. Awake- 스크립트와 연결된 GameObject가 인스턴스화되거나, 스크립트가 처음 로드 될 때 호출된다.- 해당 오브젝트가 Enable 상태가 아니라고 해도 위 조건에 따라 로드되면 호출된다.- 다른 오브젝트에 대한 참조..
이진 탐색(Binary search)이진 탐색은 오름차순으로 정렬된 배열을 반복적으로 반으로 나누어 target이 선택될 때까지 탐색하는 알고리즘이다. 시간 복잡도 : O(logN) 1. 배열을 오름차순으로 정렬한다.2. 배열의 중간값(mid)이 찾고자 하는 값(target)인지 비교한다.3. mid 값이 target과 다르다면 대소관계를 비교하여 탐색 범위를 좁히고, target과 mid 값이 같을 때까지 아래 조건에 따라 2번과 3번을 반복한다. ⓐ target이 mid 값보다 작으면 end를 mid 왼쪽 값으로 바꿔준다. (절반의 왼쪽 탐색) ⓑ target이 mid 값보다 크면 start를 mid 오른쪽 값으로 바꿔준다. (절반의 오른쪽 탐색) def binary_search(targe..
가상 메모리 (Virtual Memory)가상 메모리란?가상 메모리란 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이며, 프로그램 용량이 실제 물리 메모리보다 커도 된다는 주요 장점이 있다. 왜 가상 메모리가 필요한가?물리적 공간의 제한을 극복하기 위해 가상 메모리가 나오게 된 이유?실행되는 코드의 전부를 물리 메모리에 존재시켜야 했고, 메모리 용량보다 큰 프로그램은 실행시킬 수 없었다. 또한 멀티 프로세스상에서 여러 프로그램을 동시에 메모리에 올리기에는 용량의 한계와 페이지 교체 등의 성능 이슈가 발생했기 때문에 이를 해결하기 위해 가상 메모리 기법이 나오게 되었다. 가상 메모리를 통해서 우리는 어떤 장점을 얻을 수 있는가?가상 메모리를 통해 프로그램의 일부분만 물리 메모리..
프로세스 동기화 프로세스 동기화는 여러 프로세스가 공유 자원에 동시에 접근할 때 발생할 수 있는 문제를 방지하고, 자원의 일관성을 유지하기 위한 방법이다.다중 프로세스 환경에서는 여러 프로세스가 동시에 실행되며, 이러한 프로세스들이 동일한 자원에 접근할 경우, 의도하지 않은 결과나 경쟁 상태가 발생할 수 있다. 경쟁 상태(Race Condition)두 개 이상의 프로세스가 공유 자원에 동시에 접근하고, 그 결과가 접근 순서에 따라 달라질 때 발생하는 문제이다. 경쟁 상태는 매우 예측하기 어렵고, 잘못된 결과를 초래할 수 있다. 임계 구역(Critical section)공유되는 자원, 즉 동시 접근하려고 하는 자원에서 문제가 발생하지 않게 독점을 보장해줘야 하는 영역이다. 임계 구역을 해결하기 위한 세 가..

CPU의 작업 처리 방식컴퓨터를 이용할 때 프로그램을 수십, 수백개를 켜 놓고 이용한다. 그럼 그 수십수백개의 프로세스들을 고작 8개의 논리적인 스레드로 어떻게 처리하는 것일까?이 원리를 알기 위해서는 병렬성과 동시성이라는 개념을 알고 있어야 한다.동시성 vs 병렬성동시성 (Concurrency)병렬성 (Parallelism)동시에 실행되는 것 같이 보이는 것실제로 동시에 여러 작업이 처리되는 것싱글 코어에서 멀티 쓰레드를 동작시키는 방식멀티 코어에서 멀티 쓰레드를 동작시키는 방식한번에 많은 것을 처리한번에 많은 일을 처리논리적인 개념물리적인 개념 싱글 코어에서는 2개의 작업을 동시에 실행되는 것처럼 보이기 위해 번갈아가면서 작업을 수행한다. 이때 다른 작업으로 바꾸어 실행할 때 내부적으로 Context..

프로세스와 스레드프로세스프로세스는 운영체제로부터 자원을 할당받은 작업의 단위이다.프로세스는 독립적인 주소 공간을 가진다. 이는 프로세스 간의 데이터 공유가 불가능하다.프로세스는 최소한 하나의 스레드를 가지고 있다. * 프로그램 : 컴퓨터에서 실행 할 수 있는 파일 (.exe), 정적 프로그램(파일을 실행하지 않은 상태)* 프로세스 : 프로그램이 실행되고 있는 상태, 동적 프로그램 프로세스의 자원 구조프로그램이 실행되어 프로세스가 만들어지면 다음 4가지의 메모리 영역으로 구성되어 할당 받게 된다. ① 코드 영역 (Code) : 프로그래머가 작성한 프로그램 함수들의 코드가 CPU가 해석 가능한 기계어 형태로 저장되어 있다.② 데이터 영역 (Data) : 코드가 실행되면서 사용하는 전역 변수나 각종 데이터..
오늘은 건강상의 이슈로.. 공부를 하지 못하였습니다. 저녁 쯤엔 좀 괜찮아져서 어제 공부했던 BFS 3문제라도 풀었다.그리구 올림픽 때문에 공부에 집중을 하지 못하고 있슴...대한민국 화이팅..ㅜㅜ알고리즘수업- 너비우선탐색2 이 문제는 어제 풀었던 알고리즘수업 - 너비우선탐색1 문제와 똑같다. 다른 점은 인접 정점은 내림차순으로 방문한다는 점밖에 없다. 그래서 sort(reverse=True) 를 사용하여 graph를 내림차순으로 정렬해주었다.import sysfrom collections import dequeinput = sys.stdin.readlineN,M,R = map(int,input().split())graph = [[] for _ in range(N+1)]visited_bfs = [0] *..