반응형

분류 전체보기 282

[C++] string 덧셈

개요 알고리즘 문제를 풀다 보면, 숫자 범위가 long long 타입조차 초과하는 경우가 발생한다. 이럴 때는 string 타입으로 바꿔 계산할 필요가 있다. 풀이 원활한 계산을 위해 길이가 더 작은 string에 다른 string의 길이와 같게 되도록 앞에 0을 붙여준다. 예를 들어 17547 + 49의 경우 17547 + 00049로 만들어 준다. 그 후, 뒤에서 부터 덧셈을 진행하여 sum, carry를 계산하고 마지막에도 carry가 1이 발생하면 1을 앞에 붙여준다. 코드 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 ..

언어/C++ 2022.09.17

[게임 리뷰] 오리와 눈 먼 숲

라이브러리에 오리와 도깨비불을 사두고 오래동안 플레이하지 않고 있었다. 그러다가 메트로배니아 게임을 플레이할 기회가 와서 도깨비불을 하려다가 1편 먼저 해보는게 좋을 거 같아 오리와 눈 먼 숲을 시작했다. 오리 시리즈는 확실히 뛰어난 연출이 최고의 강점이다. 게임 시작부터 압도적인 그래픽에 빠지게 만들어 프롤로그를 넘길 수 없게 만든다. 게임을 진행하다 보면 메트로배니아 게임 답게 다양한 기술을 얻을 수 있다. 오리는 선조의 나무에서 새로운 기술을 배워가며 탐험 범위를 늘려나간다. 할로우 나이트에서는 대쉬를 이른 타이밍에 배우고 이단 점프(제왕의 날개)를 늦은 타이밍에 배웠는데, 오리에서는 반대로 이단 점프를 일찍 배우고 대쉬가 DLC로 추가된 장소에서 배울 수 있어 다른 느낌을 받을 수 있었다. 후술하..

게임/PC 2022.08.14

[Unity] Parent of RectTransform is being set with parent property.

개요 유니티에서 부모 설정을 하다가 만난 경고 Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues. 해결 위와 같이 부모를 설정해주지 말고 이렇게 부모 설정을 해주면 된다. UI 스케일링 등의 이슈 때문에, 직접 parent에 대입하기보다는 SetParen..

게임 엔진/Unity 2022.08.13

[백준 1647] 도시 분할 계획 C++

문제 백준 1647 도시 분할 계획 C++ 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 풀이 최소 스패닝 트리를 이용한다. 1. 엣지들을 가중치에 대해 오름차순으로 정렬해주고 2. 최소 스패닝 트리를 만족하도록 가중치가 낮은 n - 2개의 엣지를 연결하면 두 그룹으로 나뉘게 된다. 3. 지금까지의 가중치의 합(ans)가 정답이 된다. 소스 코드 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 2..

알고리즘/백준 2022.08.12

[백준 13459] 구슬 탈출 C++

문제 백준 13459 구슬 탈출 C++ 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 풀이 BFS를 사용한다. 방문 체크를 [빨간색 공 x좌표][빨간색 공 y좌표][파란색 공 x좌표][파란색 공 y좌표]로 4차원 배열을 이용한다. 공을 4방향(위, 아래, 왼쪽, 오른쪽)으로 굴려주면서, 방문하지 않았을 때에만 큐에 넣어주고 도착지점에 도달할 수 있을 때까지 반복한다. 그전에 이미 10번 이상 시도했다면 조건에 부합하지 않으므로 0을 출력한다. 소스 코드 1 2 3..

알고리즘/백준 2022.08.10

[방탈출] 화생설화 후기

테마 정보 자식 갖기를 원하는 부부에게 아기를 점지하고, 인간세상의 출산을 돕고, 갓난아이를 보호하는 삼신. 이 삼신할매의 세계에서 나는 조수로서 일하고 있다. 오늘은 또 어떤 일들을 하게 될까? https://www.xphobia.net/quest/quest_view.php?qr_id=1598345685 방탈출카페 비트포비아 탈출의 경계를 무너뜨리다, 비트포비아! 방탈출부터 어메이징 던전까지 다양한 어드벤처를 경험해보세요! www.xphobia.net 정보(매장) 인원 : 2 ~ 5명 난이도 3 / 4 플레이 타임 : 60분 4인, 1 Hint, 15:57 Left 난이도 2 / 5 어렵지는 않지만 또 그렇다고 너무 쉬워서 시시할 정도는 아니었다. 신선한 문제가 많아 재밌게 풀었다. 내레이션이 나오는 ..

방탈출 2022.08.06

[OS] 프로세스 간 통신 (IPC)

개요 실행중인 프로세스가 다른 실행중인 프로세스들과 데이터를 공유하지 않는다면 그 프로세스는 독립적인 프로세스이고, 다른 프로세들에 영향을 주거나 받는다면 협력적인 프로세스이다. 협력적인 프로세스들은 데이터를 교환할 수 있어야 하므로 프로세스 간 통신 기법(InterProcess Communication, IPC)가 필요하다. 프로세스 간 통신에는 공유 메모리와 메시지 전달의 두 가지 모델이 있다. 공유 메모리 방식 협력 프로세스들에 의해 공유되는 메모리 영역이 구축된다. 프로세스들은 영역 안에 데이터를 읽고 쓰면서 정보를 교환한다. 공유 메모리 영역은 공유 메모리 세그먼트를 생성하는 프로세스의 주소 공간에 위치한다. 통신하고자 하는 다른 프로세스들은 세그먼트를 자신의 주소 공간에 추가해야 한다. 그런 ..

CS/OS 2022.08.04

[OS] 프로세스

개요 디스크에 있는 데이터 파일을 프로그램이라고 하고, 메모리에 올라와 실행 중인 프로그램을 프로세스라고 한다. 프로세스는 현대 컴퓨팅 시스템에서 작업의 단위를 뜻한다. 프로세스 메모리 배치 Text(Code) 영역 : 실행 코드가 저장된다. Data 영역 : 전역 변수들이 저장된다. Heap 영역 : 프로그램 실행 중에 동적으로 할당되는 메모리이다. Stack 영역 : 함수를 호출할 때 데이터(함수 매개변수, 복귀 주소 및 지역 변수)를 임시로 저장하는 메모리이다. Text, Data 영역의 크기는 고정되어 있어 프로그램 실행 시간 동안 크기가 변하지 않는다. Heap, Stack 영역은 프로그램 실행 중에 동적으로 줄어들거나 커질 수 있다. 운영체제는 Stack과 Heap 영역이 서로 겹치지 않도록 ..

CS/OS 2022.08.02

[OS] 시스템 프로그램

개요 프로그램은 응용 프로그램과 시스템 프로그램으로 나눌 수 있다. 시스템 프로그램은 응용 프로그램을 실행하기 위한 플랫폼을 제공하고, 컴퓨터 하드웨어를 동작, 접근할 수 있게 해 준다. 사용자의 문제를 직접 해결하는 응용 프로그램과는 반대의 개념을 가지고 있다. 시스템 서비스, 시스템 유틸리티라고도 한다. 역할 시스템 프로그램의 역할은 다음과 같다. 파일 관리 파일과 디렉토리를 생성, 삭제, 복사, 개명(Rename), 인쇄, 조작한다. 상태 정보 날짜, 시간, 사용 가능한 메모리, 디스크 공간의 양, 사용자 수 등등의 상태 정보를 제공한다. 파일 변경 디스크나 다른 저장 장치에 저장된 파일의 내용을 생성하고 변경한다. 프로그래밍 언어 지원 컴파일러, 어셈블러, 디버거 및 인터프리터 등을 제공한다. 프..

CS/OS 2022.08.01

[컴퓨터 구조] SMP와 NUMA

개요 Mutilprocessor System의 종류 중 하나인 SMP와 NUMA에 대해 서술한다. 먼저, 컴퓨터 시스템 구성요소의 용어 정의를 할 필요가 있다. CPU : 명령을 실행하는 하드웨어 프로세서(processor) : 하나 이상의 CPU를 포함하는 물리적 칩 코어(core) : CPU의 기본 계산 단위 다중 코어 : 동일한 CPU에 여러 컴퓨팅 코어를 포함하는 것 다중 처리기(multiprocessor) : 프로세서가 여러 개 있는 것 SMP(Symmetric multiprocessing) 두 개 이상의 프로세서가 한 개의 공유된 메모리를 사용하는 다중 프로세서 컴퓨터 아키텍처이다. 각 프로세서에 개별 레지스터, 또는 캐시가 존재한다. 메인 메모리는 시스템 버스를 통해 공유한다. 한 번의 한 ..

CS/컴퓨터 구조 2022.07.30
반응형