컴퓨터 사이언스에 관해 공부한 내용을 정리한 것입니다. 1. 사용 목적에 따른 분류 1) 특수용 컴퓨터 한 가지 작업만을 처리할 수 있도록 설계되고 만들어진 컴퓨터 2) 범용 컴퓨터 여러 분야에서 다양한 일을 할 수 있도록 설계된 컴퓨터 일반적인 자료 처리는 물론이고, 프로그램을 교체하여 다른 작업에 이용할 수 있다. 연구, 기업업무용으로 주로 사용되어 우리가 흔히 아는 개인용 컴퓨터와는 약간 다르다는 것을 주의하자. 3) 개인용 컴퓨터 개인의 업무를 처리하도록 설계된 컴퓨터 우리가 흔히 볼 수 있는 컴퓨터로 교육용, 가정용, 기업용 등으로 널리 보급되어 있다. 2. 데이터 표현 방식에 따른 분류 1) 디지털 컴퓨터 일반적으로 생각하는 컴퓨터 이산적(discrete, 연속적이지 않다)인 형태로 이용한다...
컴퓨터 사이언스에 관해 공부한 내용을 정리한 것입니다. 1. 초창기 계산기 학교 다닐 때 배웠던 근대 문학에서 흔히 등장하는 주판이 있다. 주판은 지금 쓰는 전자식 계산기가 보급되기 전 계산을 할 때 쓰던 도구이다. 주판이 규칙에 따라 문제를 풀 수 있는 장치인 것을 알고 있는 중세와 근대의 유럽인들은 이러한 규칙을 기계 장치에 집어넣으면 계산을 자동화할 수 있지 않을까 하는 발상에서 톱니 계산기를 발명하게 된다. 최초의 기계식 계산기는 1642년에 파스칼이 고안한 장치였다. 이 장치는 손잡이와 이에 딸린 톱니바퀴가 일정한 비율로 배열되어 손잡이를 좌우로 돌리는데에 따라 덧셈과 뺄셈이 자동으로 수행되는 장치였다. 이후 라이프니츠가 만든 계산기는 덧셈과 뺄셈 이와에도 곱셈과 나눗셈, 간단한 제곱근까지도(대..
컴퓨터 사이언스에 관해 공부한 내용을 정리한 것입니다. 1. 컴퓨터의 정의 컴퓨터(Computer)란 지금까지 사람이 해 왔던 기억과 계산 등의 일을 빠르고 정확하게 처리해 주는 기계이며, 사람의 지시에 따라 여러 가지 일을 자동적으로 처리해주는 전자 장치이다. 컴퓨터라는 명칭 자체가 계산하다 라는 뜻인 compute에서 확장된, 계산해주는 사람(혹은 장치) 이라는 뜻의 computer에서 유래되었다. 초기의 컴퓨터는 단순 수치 계산을 목적으로 만들어졌지만 오늘날의 컴퓨터는 수치 계산 뿐만 아니라 기억, 분류, 비교하는 것과 같은 여러 가지 일들을 한꺼번에 처리할 수 있다. 외부로부터 입력된 자료를 정의된 방법에 따라 자료를 처리하여 정보를 생성하고, 사용자에게 생성된 정보를 출력해 주는 기능을 가지고 ..
컴퓨터 사이언스에 관한 공부내용을 정리한 글입니다. 1. 컴퓨터 사이언스의 기원 컴퓨터 사이언스는 컴퓨터라고 하는 기기에 대한 연구라고 할 수 있다. (맞는 말) 컴퓨터 사이언스의 현대적인 기원은 1940년대에 최초로 출현한 디지털 컴퓨터들의 등장과 1930년대에 이와는 별도로 형성된 계산기기들에 대한 적절한 수학적 모델에 있다고 할 수 있다. 컴퓨터는 그 전까지는 수작업으로 하던 덧셈과 뺄셈같은 계산들을 좀 더 빠르면서 정확하게 처리하고자 만든 장치에서 시작되었기 때문이다. 2. 컴퓨터 사이언스의 정의 물리학은 에너지와 많은 관련성을 갖는 학문이다. 반면, 컴퓨터 사이언스는 정보의 표현, 저장, 조작 및 검색과 밀접한 관계를 갖는 학문이다. 물리학이 에너지 변환장치를 이용하는 것처럼, 컴퓨터 사이언스는..
전형적인 BFS 문제로 정사각형 맵에서 연속되어 붙어 있는 집(1)들의 덩어리 갯수와 덩어리 안에 집이 몇개나 들어있는지 구하는 문제 문제의 조건 1. NxN 크기를 가진 정사각형 2차원 배열이 주어진다. 2. 2차원 배열에는 0과 1이 들어있다. 0은 아무것도 없는 곳을 뜻하고 1은 집이 있다는 것을 나타낸다. 3. 1들이 상하좌우로 연속해서 붙어 있으면 같은 단지로 친다. 주어지는 2차원 배열에는 단지가 여러개 있다. 4. 첫 번째 줄에 주어진 2차원 배열에 들어 있는 단지의 갯수를 출력하고 두 번째 줄부터 각 단지 안에 있는 집의 갯수를 오름차순으로 정렬해서 출력하기 풀이 과정 DFS 카테고리에 있긴 했지만 BFS로 풀어도 될 거 같아서 큐를 이용해 BFS로 풀었습니다. 한 타일을 기준으로 상하좌우..
세준이는 +, -와 괄호를 이용해서 식을 만들었는데 실컷 만들고 나서 괄호를 지워버렸다. 근데 세준이는 괄호를 다시 쳐서 이 식의 최솟값을 구하고 싶어짐... 괄호를 적당히 쳤을 때 얻을 수 있는 최솟값을 구하는 문제 문제의 조건 1. +와 -로 구성된 식이 문자열로 주어진다. 2. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 3. 두 개 이상 연속해서 연산자(+, -)가 나타나지 않으며 5자리보다 많이 연속되는 숫자도 없다. 4. 식에서 얻을 수 있는 최솟값을 구해서 출력 풀이 과정 처음 문제를 봤을 땐 풀이가 떠오르지 않아서 10분정도 고민하다가 질문 게시판을 봤습니다. 거기서 -를 만나면 그 이후로 나오는 숫자는 모두 뺀다는 말을 보고 풀이..
S = A[0] × B[0] + ... + A[N-1] × B[N-1] 위와 같이 정의된 함수 S가 주어진다. A와 B 배열이 주어질 때 S의 최솟값을 구하는 문제 문제의 조건 1. 두 배열의 길이 N이 주어진다. 2. N은 50보다 작거나 같은 자연수이고 A, B의 각 원소는 0보다 크거나 같고 100보다 작거나 같은 양의 정수이다. 3. B는 정렬하면 안 되고 A만 정렬해서 S의 최솟값을 구해서 출력하기 풀이 과정 처음 문제를 읽었을 땐 A 배열을 정렬해서 풀어야 할 것 같지만 예제를 자세히 보면 정렬할 필요가 없다는 것을 알 수 있습니다. A의 첫번째 최솟값과 B의 첫번째 최댓값을 곱한 값에다 A의 두번째 최솟값과 B의 두번째 최대값을 곱해서 첫번째로 구한 값에 더해주고 A의 세번째 최솟값과 B의 ..
아주 전형적인... BFS로 최단 거리를 찾는 문제 문제의 조건 1. N x M 크기의 미로가 주어진다. 2. 미로의 [1, 1]에서부터 [N, M]까지 가는 최단 거리를 구해서 출력하기 => 미로 배열의 [0, 0]에서부터 [N-1, M-1]까지의 최단 거리를 구하면 된다. 풀이 과정 많이 보던 스타일이라 낯설진 않았고 BFS 알고리즘도 어느정도 익숙해서 금방 풀 수 있을 것이라 생각했지만... 여전히 백준 문제의 입력을 받는 것에 익숙하지 않았기 때문에 입력을 받는 과정에서도 착오가 있었고... 최단 거리를 구하는 식을 잘못 썼고... 등등의 이유로 오래 걸린 문제입니다. ㅠ.ㅠ 그래도 덕분에 이젠 확실하게 알겠습니다... 근데 문제에 입력되는 숫자가 붙어서 주어진다 이런 말 말고 string형 배열..
- Total
- Today
- Yesterday
- c++
- 해커랭크
- 프로그래머스
- 깊이우선탐색
- 하드웨어
- 컴퓨터공부
- 너비우선탐색
- 영어공부
- 다이나믹프로그래밍
- 기초
- BFS
- 아이패드
- 그리디
- 스위프트플레이그라운드
- 컴퓨터사이언스
- 알고리즘
- DFS
- c언어
- dp
- 애플
- C언어기초
- 백준
- hackerrank
- 프로그래밍
- 코딩공부
- 캐나다생활
- 문제풀이
- 컴퓨터
- 캐나다
- greedy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |