Cute Running Puppy
반응형

R.silver 124

[혼공컴운] chapter 03. 명령어

03-1. 소스 코드와 명령어 고급 언어와 저급 언어 고급 언어: 사람을 위한 언어 저급 언어: 컴퓨터를 위한 언어 예) 기계어, 어셈블리어 기계어: 0과 1의 명령어 비트로 이루어진 언어 고급 언어로 작성된 소스 코드는 반드시 저급 언어(명령어)로 변환되어야 한다 컴파일 언어와 인터프리터 언어 컴파일 방식: 소스 코드 전체를 저급 언어로 변환 -> 목적코드 생성 인터프리터 방식: 소스 코드를 한 줄씩 실행 목적 파일 vs 실행 파일 목적 파일: 목적 코드로 이루어진 파일 실행 파일: 실행 코드로 이루어진 파일 링킹: 목적 코드를 실행 코드로 변환하는 과정 03-2. 명령어의 구조 연산 코드와 오퍼랜드 명령어 = 연산 코드 + 오퍼랜드 연산 코드 (== 연산자): 명령어가 수행할 연산 오퍼랜드 (== 피..

[혼공컴운] chapter 02. 데이터

| 참고 도서: 혼자 공부하는 컴퓨터 구조+운영체제 02-1. 0과 1로 숫자를 표현하는 방법 정보 단위 비트 (bit): 가장 작은 정보 단위 바이트(byte): 8비트 킬로바이트(kB): 1000byte 메가바이트(MB): 1000kB 기가바이트(GB): 1000MB 테라바이트(TB): 1000GB 워드: CPU가 한 번에 처리할 수 있는 데이터의 크기 이진법 이진법: 0과 1으로 모든 숫자를 표현 하는 방법 음수 표현: 2의 보수법 + flag 사용 십육진법 이진법으로 모든 숫자를 표현하면 숫자의 길이가 너무 길어짐 & 이진법으로 변환하기 쉬움-> 십육진법으로 해결 15를 넘어가는 시점에서 올림 0x--으로 표시 이진수 -> 십육진수: 네자리씩 십육진수로 변환하고 이어 붙이기 십육진수 -> 이진수:..

[혼공컴운] chapter 01. 컴퓨터 구조 시작하기

| 참고 도서: 혼자 공부하는 컴퓨터 구조+운영체제 01-1. 컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조 이해를 통해 문제 해결 능력 향상 성능/용량/비용을 고려하여 개발 가능 01-2. 컴퓨터 구조의 큰 그림 컴퓨터 구조 지식 컴퓨터가 이해하는 정보 컴퓨터의 네 가지 핵심 부품 컴퓨터가 이해하는 정보 데이터: 0 과 1로 이루어진 정보 명령어: 데이터를 움직이고 컴퓨터를 작동시키는 정보 => 명령어: 컴퓨터 작동 정보, 데이터: 재료 컴퓨터의 4가지 핵심 부품 중앙처리장치 (CPU) 주기억장치 (메모리 - RAM, ROM, ...) 보조기억장치 입출력장치 1. 메모리 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품 => 실행되기 위해서는 반드시 메모리에 프로그램이 저장되어 있어야 한다 주소:..

BFS

Breadth First Search 너비 우선 탐색 가까운 노드부터 탐색하는 알고리즘 큐 자료구로를 사용하는 것이 정석 (인접한 노드를 큐에 넣으면 먼저 들어온 것이 먼저 나가게 되므로 가까운 노드부터 탐색할 수 있다) 사용하는 경우 (유형) 연결된 그래프를 탐색하는 경우 최단 거리(최소 횟수)를 구하는 경우 (현재 노드에서 가까운 곳을 먼저 찾기 때문) 그래프의 규모가 크지 않고 시작 지점으로부터 대상이 멀지 않은 경우 cf) 경로의 특징을 저장하는 경우에는 DFS 사용 (BFS는 경로의 특징을 가질 수 없다) 동작 방식 탐색 시작 노드를 큐에 삽입하고 방문 처리 큐에서 노드를 꺼내 인접 노드 중 방문하지 않은 노드를 모두 큐에 삽입하고 방문처리 2번을 더 이상 수행할 수 없을 때까지 반복 code ..

2468_안전 영역

문제 2468번: 안전 영역 (acmicpc.net) 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 접근 방식 1. 상하좌우를 돌며 내린 비의 양보다 높은 곳이 있는지 파악한다 -> DFS 활용 2. 높다면 방문처리 한 뒤 return True 3. 낮다면 return False 이 과정을 가장 높은 지역 크기 만큼 반복 (내리는 비의 양) 주의할 점 1. 재귀 함수 범위에 주의하자 # 재귀 함수 범위를 늘려주는 코드 import sys sys.setrecursionlimit(10**7) 2. 제공된 graph를 ..

2667_단지번호붙이기

2667번: 단지번호붙이기 (acmicpc.net) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 접근 방법 상하좌우를 모두 돌며 집이 연결되어 있는지 확인 -> DFS 사용 1. 노드 == 1이면 0으로 변경하고 상, 하, 좌, 우 확인 후 return True 2. 노드 == 0 이면 return False 3. global 변수를 사용하여 상하좌우 확인할 때 집의 개수 추가 주의 할 점 1. 상하좌우를 확인 할 때 범위를 넘어갈 수 있으므로 미리 예외 처리 하기 2. graph 값 int 로 변환하기 정..

DFS

Depth First Search 깊이 우선 탐색 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘 특정 경로로 탐색하다가 특정 상황에서 최대한 깊숙히 들어가 노드를 방문한 뒤, 다시 돌아가 다른 경로로 탐색하는 알고리즘 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방법 BFS 보단 느리다 (단순 검색 속도) 백트래킹과 연관된다 DFS를 사용하는 경우 모든 노드를 방문하고자 할 때 순회를 하고자 할 때 경로에 특징을 저장해야 할 때 검색 대상 그래프가 클 때 cf) 최단거리는 BFS가 유리 동작 방식 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를..

android 버튼으로 unity 실행하기

안드로이드 프로젝트에서 버튼을 누르면 유니티가 실행되도록 하는 방법 요약 1. 유니티에서 게임을 export 한다 2. 안드로이드에서 export 한 게임을 Library로 추가한다 3. 추가한 Library를 안드로이드 액티비티와 연결한다 Unity에서 게임 export 하는 방법 1. 유니티 접속 2. file → build setting → android → player setting 위의 사진과 같이 설정해 준다 패키지 이름 변경해주는 것도 잊지 말아야 한다 3. x 로 페이지 나가기 4. export 설정해서 추출하기 export 한 게임을 안드로이드에서 library로 추가하는 방법 build.gradle (project)에 아래 코드 추가 flatDir { dirs "${project(':u..

mobile/android 2023.04.12

[자바의 정석] chapter06. 객체지향 프로그래밍1 (2)

오버로딩 (overloading) 오버로딩이란? 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 ⇒ 메서드 오버로딩 오버로딩의 조건 메서드 이름이 같아야 한다 매개변수의 개수 또는 타입이 달라야 한다 이름이 같더라도 매개변수가 다르기에 메서드가 구분될 수 있다. 조건을 만족시키지 않으면 중복 정의로 간주되어 컴파일 에러가 발생한다 반환 타입을 통해서만 구별되므로 반환타입은 영향을 미치지 않는다 (반환타입만 다르면 함수 중복으로 간주된다) 매개변수의 순서가 다르더라도 오버로딩된다 // 오버로딩 가능 long add (int a, long b); long add (long a, int b); 사용자가 매개변수의 순서를 외우지 않아도 되지만 add(3,3)과 같이 호출할 경우 어느 메서드가 호출된 ..