[혼자 공부하는 컴퓨터구조] (3) 명령어
·
💻 CS/🫧 컴퓨터구조
이 글은 강민철님의 혼자 공부하는 컴퓨터구조 + 운영체제를 학습하고 개인적으로 정리한 내용입니다. 들어가며컴퓨터는 우리가 작성한 프로그래밍 언어를 바로 이해할 수 없다.즉, 우리가 아래와 같이 코드를 작성해도 컴퓨터가 이해하고 실행하는 언어와는 다르다는 것이다.이번 장에서는 이렇게 개발자가 작성한 명령어를 어떻게 컴퓨터가 인식할 수 있는지에 대해서 알아본다. 고급 언어와 저급 언어우선, 컴퓨터가 이해하는 언어와 개발자가 이해하는 언어를 아래와 같은 용어로 구분할 수 있다.1) 고급 언어 : 개발자가 이해하기 쉽게 만든 언어 (C, Java 등)2) 저급 언어 : 컴퓨터가 이해하고 실행하는 언어 (기계어, 어셈블리어)  기계어를 사람들이 읽고 쓰기 편하도록 변환한 어셈블리어 또한 저급 언어에 해당된다. 고..
[BOJ] 1963 소수 경로 (node.js)
·
👩‍💻 Algorithm
BOJ 문제 1963번의 풀이 과정을 작성한 게시글입니다. 링크https://www.acmicpc.net/problem/1963 문제소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데. “이제 슬슬 비번 바꿀 때도 됐잖아”“응 지금은 1033으로 해놨는데... 다음 소수를 무엇으로 할지 고민중이야"“그럼 8179로 해”“흠... 생각 좀 해볼게. 이 게임은 좀 이상해서 비밀번호를 한 번에 한 자리 밖에 못 바꾼단 말이야. 예를 들어 내가 첫 자리만 바꾸면 8033이 되니까 소수가 아니잖아. 여러 단계를 거쳐야 만들 수 있을 것 같은데... 예를 들면... 1033 1733 3733 3739 3779 8779 8179처럼 ..
[혼자 공부하는 컴퓨터구조] (2) 데이터
·
💻 CS/🫧 컴퓨터구조
이 글은 강민철님의 혼자 공부하는 컴퓨터구조 + 운영체제를 학습하고 개인적으로 정리한 내용입니다. 들어가며컴퓨터는 기본적으로 0(전기 신호가 약함)과 1(전기 신호가 셈) 밖에 이해할 수 없다.이런 컴퓨터가 1보다 큰 수를 어떤 방식으로 이해할 수 있을까? 이번 장에서는 이렇게 1보다 큰 수를 컴퓨터가 어떻게 이해할 수 있는지에 대해 알아본다. 0과 1로 숫자를 표현하는 방법Bit: 가장 작은 정보 단위 0과 1을 표현하는 가장 작은 정보 단위 n비트로 2^n 가지의 정보를 표현할 수 있다.그리고 이러한 비트들이 모여서 더 큰 단위들로 표현할 수 있다. 이진법0과 1로 수를 표현하는 방법으로, 숫자가 1을 넘어가는 시점에 자리 올림그래서 0과 1밖에 이해하지 못하는 컴퓨터에게 숫자를 알려줄려면 이진수로 ..
[BOJ] 12851 숨바꼭질 2 (node.js)
·
👩‍💻 Algorithm
BOJ 문제 12851번의 풀이 과정을 작성한 게시글입니다. 링크https://www.acmicpc.net/problem/12851 문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 그리고, 가장 빠른 시간으로 찾는 방법이 몇 가지 인지 구하는 프로그램을 작성하시오.  풀이 과정접근법 : BFS이 문제는 b..
[혼자 공부하는 컴퓨터구조] (1) 컴퓨터 구조 시작하기
·
💻 CS/🫧 컴퓨터구조
이 글은 강민철님의 혼자 공부하는 컴퓨터구조 + 운영체제를 학습하고 개인적으로 정리한 내용입니다. 들어가며이번 장에서는 컴퓨터 구조의 큰 그림에 대해서 학습한다. 컴퓨터 구조를 알아야 하는 이유개발자가 컴퓨터 구조(+ 운영 체제)를 알아야 하는 이유가 무엇일까?그 이유는 바로 문제 해결 능력과 성능/비용/용량을 고려한 개발을 할 수 있기 때문이다. 1) 문제 해결문제가 발생하는 원인에는 프로그래밍 언어 문법의 문제일 수도 있으나, 조금 더 깊이 들어가면 컴퓨터의 더 깊은 내부구조에 대한 문제일 수도 있다.이때 컴퓨터 구조에 대한 이해가 없다면 문제를 분석할 수 있는 능력이 없기에 문제 분석을 포기하게 된다.반면, 컴퓨터 구조에 대한 지식이 있는 사람이라면 한 번 들여다 봐야겠다는 시도를 통해 문제 해결 ..
[BOJ] 7569 토마토 (node.js)
·
👩‍💻 Algorithm
BOJ 문제 7569번의 풀이 과정을 작성한 게시글입니다. 링크https://www.acmicpc.net/problem/7569 문제철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저..