전체 글 (121) 썸네일형 리스트형 컴퓨터 구조 : 소스코드와 명령어 그리고 명령어의 구조 📗 고급 언어와 저급 언어 고급 언어 : 개발자가 읽고 쓰기 편하도록 만든 언어 예) C, C++, JAVA, Python ... 저급 언어 : 컴퓨터가 이해하고 실행하기 위해 만든 언어 (=명령어) 고급 언어가 작성된 소스코드가 컴퓨터 내부에서 실행될 때는 저급언어로 변환된다. ✔ 저급 언어의 종류 - 기계어 : 0과 1로 이루어진 명령어로 구성된 저급 언어 - 어셈블리어 : 기계어를 읽기 편한 형태로 번역한 저급 언어 ✔ 고급 언어의 종류 - 컴파일 언어 - 인터프리터 언어 💻 컴파일 언어 - 컴파일 언어는 소스 코드를 저급 언어로 변환하는 컴파일러를 사용하여 프로그램을 먼저 컴파일 한 뒤 실행한다. - 컴파일러가 소스 코드를 전부 훑어 본 뒤 컴파일을 진행하기 때문에 실행 파일을 생성하며 개발자는 .. 컴퓨터 구조 : 0과 1로 문자를 표현하는 방법 📗 문자 집합 문자 집합 : 컴퓨터가 이해할 수 있는 문자의 모음 인코딩 : 문자를 0과 1로 이루어진 문자코드로 변환하는 과정을 말함 (문자 -> 코드) 디코딩 : 0과 1로 표현된 문자코드를 문자로 변환하는 과정을 말함 (코드 -> 문자) 📗 아스키 코드 아스키 코드 : 초기 문자 집합 중 하나이다. 알파벳, 아라비아 숫자, 일부 특수문자와 제어문자를 나타낸다. 아스키코드는 7비트로 하나의 문자를 표현한다. 8비트 중 1비트는 오류 검출을 위해 사용되는 '패리티 비트' 이다. 7비트로 하나의 문자를 표현하기 때문에 최대 2^7 = 128 개의 문자 표현이 가능하다. ✔ 아스키 코드의 한계 아스키 코드는 인코딩이 간단하지만 한글을 포함해서 다른 언어나 특수문자를 표현할 수 없다. 7비트로 하나의 문자를.. 컴퓨터 구조 : 0과 1로 숫자를 표현하는 방법 📗 정보의 단위 비트 : 0과 1을 표현하는 가장 작은 정보 단위 - n 비트는 2^n 가지의 정보를 표현 가능하다. (4비트 = 16가지 정보 표현) - 비트 외에도 키로바이트, 메가바이트, 기가바이트.. 등이 있다 ✔ 이전 단위를 1000개씩 묶는 곳도 있고 1024개씩 묶는곳도 있는데 어떤게 맞는건지? 이전 단위를 1024개씩 묶은 단위는 kiB, MiB, GiB 와 같이 단위가 따로 있기 때문에 1000개의 묶음으로 생각하자. 혹은 그냥 상황에 맞춰서 쓰면 될거같다. 워드 : CPU가 한번에 처리할 수 있는 정보의 크기 단위 - CPU가 한번에 32bit를 처리할 수 있으면 1워드 = 32bit 파생 단위로 하프워드 (워드의 절반크기) , 풀 워드 (워드 크기), 더블 워드(워드의 두배 크기) 가.. 컴퓨터 구조 : CPU 작동 원리 📗 CPU의 동작 과정 1. 메모리는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다. 2. CPU는 프로그램을 실행하기 위해 메모리에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 메모리에 저장한다. 3. 메모리는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보낸다. 4. 제어장치는 1-3 과정이 명령어의 순서대로 실행하도록 각 장치를 제어한다. CPU가 실행할 명령어의 집합을 '명령어 세트'라고 한다. 명령어 세트 연산코드와 피연산자로 이루어진다. 연산코드 : 실행할 연산, 연산, 제어, 데이터 전달, 입출력 기능을 가짐 피연산자 : 필요한 데이터나 저장 위치, 주소, 문자/숫자, 논리 데이터를 저장 CPU는 프로그램을 실행하기 위해 메모리에서 명령어를 .. 컴퓨터 구조 : 컴퓨터의 구성 📗 컴퓨터의 구성 컴퓨터 시스템은 크게 하드웨어, 소프트웨어 2가지로 나뉜다. 하드웨어 : 컴퓨터의 시스템을 구성하는 기계적 장치를 말한다. 소프트웨어 : 하드웨어의 동작을 지시하고 제어하는 명령어의 집합을 말한다. 📗 하드웨어란? 하드웨어는 크게 3가지로 나뉘는데 중앙 처리 장치, 기억 장치, 입출력 장치가 있다. 중앙 처리 장치는 우리가 잘 아는 컴퓨터의 핵심인 CPU를 말하고 기억장치는 RAM, HDD 를 말하며 입 출력 장치는 마우스, 프린터, 키보드, 모니터 등등 컴퓨터에게 명령을 하고 명령의 대한 결과를 볼 수 있는 장치이다. 📗 소프트웨어란? 소프트웨어는 크게 2가지로 시스템 소프트웨어와 응용 소프트웨어로 나뉜다. 시스템 소프트웨어 : 응용 프로그램과 하드웨어 장치 사이에 존재하는 소프트웨어.. [JAVA] List.remove(Int) VS remove(Integer) 코딩테스트 문제를 풀면서 몰랐던 사실을 알게되어 기록하기 위해 글을 쓴다. 🕶️ 알게된 것 지금까지 List 의 remove 메서드의 파라미터로 항상 '인덱스'를 넘겨줘야 하는 것으로 알았다. 실제로 remove 메서드의 설명에서 Parameters 를 보면 'index' , 삭제를 하기 위한 원소의 인덱스를 파라미터로 넘겨달라고 적혀있다. 따라서 remove 메서드에 int형 데이터를 전달하면 List 내에 있는 원소들의 인덱스 중, 파라미터로 전달된 데이터 값의 인덱스를 찾아 삭제한다. 하지만 remove 메서드에 int형 데이터가 아닌 Integer형 데이터를 전달하면 결과가 전혀 달라짐을 확인할 수 있다. 🚨 CODE public class Main { public static void main(.. [JAVA] 프로그래머스 - 피로도 프로그래머스 고득점 알고리즘kit 완전탐색 lv.2 문제인 피로도 문제다. 각 던전에 입장할 수 있는 최소한의 피로도와 던전을 탐험했을 때 소모되는 피로도를 고려하여 최대한 많은 던전을 탐험하고 그때의 던전 수를 구하면 된다. ✅ 핵심 풀이 모든 경우의 수에 대해서 던전을 탐험하고 탐험이 완료된 뒤 탐험 횟수의 최대 값을 갱신해 주면 된다. 따라서 완전탐색을 이용하여 풀었고 탐험했던 던전을 중복하여 탐험하지 않기 위해 boolean 타입의 visit 배열을 사용했다. 하지만 간과한게 하나 있었으니, 처음에 현재 피로도가 최소 필요 피로도보다 작은 경우 해당 던전을 방문처리하고 continue로 넘어가도록 코드를 짰는데 테스트 케이스는 통과했으나 다른 테스트 케이스에서 실패가 뜨고 말았다. 최소 필요 피로.. [JAVA] length, length(), size() 의 차이 코딩테스트 문제를 풀면서 한 가지 의문이 들었다. JAVA에서 길이를 구하는 대표적인 메서드로는 length, length(), size()로 3가지가 있는데 전부 길이를 구하는 메서드임에도 불구하고 사용처에 따라 다른 메서드를 사용해야한다. 이에 혼동되지 않게 정리하고자 글을 쓴다. 1. length length 메서드는 배열의 길이를 알고자 할 때 사용한다. ex) int[] array = new int[5]; array.length => 5 이외에도 double, String 배열에서도 사용 가능하다. 2. length() length() 메서드는 문자열의 길이를 알고자 할 때 사용한다. 여기서 말하는 문자열은 단순 String 이외에 StringBulider 도 포함된다. ex) String st.. 이전 1 ··· 9 10 11 12 13 14 15 16 다음