문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120807 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제---- 풀이--class Solution { public int solution(int num1, int num2) { if (num1 == num2){ return 1; } return -1; }}-- 다른 풀이--class Solution { public int solution(in..
CPU의 구성 요소 중ALU와 제어장치는 어떻게 동작할까? CPU 구성 ---- ALU (Arithmetic Logic Unit) --ALU는CPU에서 가장 중요한 구성 요소 중 하나로산술 연산과 논리 연산을 수행하는 하드웨어 부품이다. (계산을 수행하는 부품) 계산을 수행하기 위해 필요한 정보피연산자 (레지스터를 통해 받아온다.)연산자 (제어장치를 통해 수행할 연산을 알려주는 제어 신호를 받아온다.) 제어장치는 CPU 내에서 수행할 명령어를 해석 후,어떠한 연산을 수행해야 하는지 ALU에게 전달 (연산에 대한 정보를 전달)해당 연산에 필요한 피연산자를 레지스터로부터 가져옴제어장치로부터 받은 명령어(연산)와 레지스터로부터 받은 피연산자를 이용하여 해당 연산 수행연산 결과를 제어장치에 ..
명령어의 구조는 어떻게 되어있는가? 연산 코드와 오퍼랜드 --일반적으로 명령을 할 때"대상"과 "동작"을 포함하여 말한다.[ ex) A와 B를 더해 ] 명령어는 "연산 코드"와 "오퍼랜드"로 구성되어 있다. 연산 코드 (Operation code) : 명령어가 수행할 연산(동작)오퍼랜드 (Operand) : 연산에 사용할 데이터 or 연산에 사용할 데이터가 저장된 위치여기서연산 코드를 연산자오퍼랜드를 피연산자라고도 부른다. 위 그림처럼오퍼랜드는 하나의 명령어 안에 하나도 없을 수도 있고, 1개만 존재할 수 도 있으며, 여러 개가 존재할 수도 있다.이때오퍼랜드가 0개인 명령어 = "0-주소 명령어"오퍼랜드가 1개인 명령어 = "1-주소 명령어"오퍼랜드가 2개인 명령어 = "2-..
고급 언어와 저급 언어는 무엇이며,어떻게 사용하는 것인가? 저급 언어와 고급 언어 --프로그래밍 언어를 사용해서 컴퓨터에게 명령을 전달한다.다만, 컴퓨터는 프로그래밍 언어를 이해할 수 없기 때문에 때문에 프로그래밍 언어를 작성하여 전달해도 이해할 수 없다. 그래서 해당 언어를 작성하면 어떠한 중간 과정을 거쳐 컴퓨터가 이해할 수 있는 언어로 변환하여 컴퓨터에게 전달된다. 저급 언어 (Low-Level Programming Language) : 컴퓨터가 직접 이해하고 실행할 수 있는 언어고급 언어 (High-Level Programming Language) : 사람이 이해할 수 있는 언어 (사람을 위한 언어) 저급 언어 (컴퓨터가 이해할 수 있는 언어) 종류기계어 (Machin Langu..
0과 1로만 어떻게 문자, 숫자를 표현할까? 정보 단위 --컴퓨터는 0과 1로 모든 정보를 표현하고, 0과 1로 표현된 정보만을 이해할 수 있다. 정보 단위는데이터를 표현하고 처리하는 데 사용되는 기본적인 크기를 의미한다. 비트 ( Bit )바이트 ( Byte )킬로바이트 (KiloByte, KB )메가바이트 ( MegaByte, MB )기가바이트 ( GigaByte, GB )테라바이트 ( TeraByte, TB ) 비트 (Bit)는0과 1을 나타내는 가장 작은 정보 단위로 0 또는 1만 표현이 가능하다.(비트는 전기 신호에서 0 = 꺼짐, 1 = 켜짐의 상태를 나타낸다.)즉, 0 또는 1만 표현이 가능한 한 자릿수 단위라고 생각하면 된다. 1bit = 0, 1 총 2가지 정보 표현 가능2..
컴퓨터 구조는 무엇일까? 컴퓨터 구조 --컴퓨터 구조는컴퓨터 시스템의 설계와 동작 원리에 대한 것으로하드웨어와 소프트웨어가 어떻게 상호작용하는지에 대한 이해를 돕는다. 컴퓨터 구조에 대한 지식은 크게 두 가지다.컴퓨터가 이해하는 정보컴퓨터의 네 가지 핵심 부품-- 컴퓨터가 이해하는 정보 --컴퓨터는 0과 1로 표현된 정보만을 이해할 수 있다. 0과 1로 표현된 정보에는 크게 두 종류가 있다.데이터 (Data)명령어 (Instructions) 데이터는컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상 등 정적인 정보를 의미한다.즉, 컴퓨터가 처리해야 할 정보나 자료를 의미하고이러한 데이터는 0과 1로 이루어진 이진수(binary)로 저장되고 처리된다.(컴퓨터와 주고받는 정보나 컴퓨터에 저장된 ..
그래프는 무엇일까? 그래프 (graph) --그래프는노드의 집합과 간선(edge, 엣지)의 집합으로 구성된다. 노드(node)는그래프의 기본 요소로, 보통 정점(Vertex)이라고도 부른다.각 노드는 데이터를 저장할 수 있으며, 다른 노드와의 관계를 나타내는 엣지에 의해 연결된다.엣지(Edge)는두 노드를 연결하는 선으로, 노드 간의 관계나 연결을 표현한다.엣지는 방향이 있는 경우와 없는 경우가 존재한다.- 방향이 없는 엣지는 무방향 엣지(Undirected Edge)라고 부르며 보통 양방향을 의미한다.(무방향 엣지로 이루어진 그래프를 무향 그래프 (Undirected Graph)라고 부른다.)- 방향이 있는 엣지는 유방향 엣지(Directed Edge)라고 부르며 해당 방향을 가리키는 의미다...
캐시란 무엇인가? 캐시 (cache) --캐시는데이터 접근 비용을 줄이기 위해 일부 데이터를 계산이 이뤄지는 곳에서 가까운 위치에 저장하는 자료 구조다. 평소에 컴퓨터의 모든 저장소를 동등하게 취급했지만(여기서 동등하게 취급했다는 것은 모든 저장소에 접근하는 비용이 비슷하게 취급했다는 의미다.)사실 모든 데이터 저장소가 동등하지 않다. 실제 서로 다른 저장 매체들은저장 용량, 속도, 비용 사이에 트레이드 오프 관계가 존재한다. 트레이드 오프(trade-off) 관계는한 가지 이점을 얻기 위해 다른 이점을 포기하는 상황을 의미한다. 저장소 종류 CPU 자체의 메모리 (레지스터 or 지역적 캐시)속도가 매우 빠름저장 공간이 작음컴퓨터의 RAMCPU 메모리보다 더 큰 공간을 제공CPU 메모리보다 속..