본문 바로가기

분류 전체보기184

[백준 알고리즘] 1152번 단어의 개수 단어의 개수 영어 대소문자와 띄어쓰기만으로 이루어진 문장이 주어진다. 이 문장에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 단어는 띄어쓰기 하나로 구분된다고 생각한다. #include #include using namespace std; int main(){int num = 0;string word = {};getline(cin, word);for (int i = 0; i < word.length(); i++){if (word.at(i) == ' ')num++;}if (word.at(0) == ' '){num = num - 1;}if (word.at(word.length() - 1) == ' '){num = num - 1;} cout 2017. 5. 17.
[백준 알고리즘] 1065번 한수 한수 어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. #include using namespace std; int t = 0; void selectSelfNum(int x){int b = (x)/100;int c = (x-(b*100))/10;int d = x-(b*100)-(c*10);if (b ==0){t++;}else{if ((b-c) == (c-d) || (d-c) == (c-b)){t++;}}} int main(){int i;cin >> i;int num[1000] = {};for (int j = 1.. 2017. 5. 17.
[백준 알고리즘] 1019 책 페이지 책 페이지 지민이는 N쪽인 책이 한권 있다. 첫 페이지는 1쪽이고, 마지막 페이지는 N쪽이다. 각 숫자가 모두 몇 번이 나오는지 출력하는 프로그램을 작성하시오. 변수의 선언으로 long long 을 사용해야 에러가 나타나지 않는다. #include using namespace std;long long ans[10];void calc(long long n, long long ten) {while (n > 0) {ans[n % 10] += ten;n = n / 10;}}int main() {long long start = 1;long long end;long long ten = 1;cin >> end;while (start 2017. 5. 17.
파이썬(python) 강의 5장 - 입력과 출력 & 논리 연산자 - 파이썬(python) 강의 5장- 입력과 출력 & 논리 연산자 - 4장에서 조건문을 사용할 때 임의의 주어진 answer라는 값을 사용해서 구문을 완성시켰다. 따라서 answer라는 값은 코드를 통해서 계속 바꾸어줘야 하는 값인 것이다. 하지만 우리가 보편적으로 아이디나 비밀번호를 입력할 때 코드를 작성하는 것처럼 항상 정해져 있는 것이 아니다. 수많은 사람들이 조건문을 통해 증명을 받을 때 자신이 내놓은 답은 다를 것이다. 따라서 컴퓨터는 사람들이 원할 때 마다 값을 바꾸어 받아줄 필요가 있다. 따라서 이런 기능을 위해 입력이 존재한다. 출력은 print를 통해 하는 방법을 많이 보았으니 입력에 대해 자세히 보도록 하자. 출력하기를 위해서는 print라는 함수를 사용하였다. 입력하기를 위해서도 이와 같.. 2017. 5. 16.
파이썬(python) 강의 4장 - 비교 연산자와 조건문 - 파이썬(python) 강의 4장- 비교 연산자와 조건문 - 파이썬 언어를 사용하면 문자나 숫자와 같은 데이터 타입 이외에도 True와 False를 나타내어 주는 데이터 타입도 존재한다. 바로 Boolean으로 특정 연산에 대한 결과가 참인지 거짓인지를 판단하여 결과를 True와 False로 나타내어 주는 것이다. 예를 들어보면 1은 1인가에 대한 질문을 해보겠다. 이상하게 들릴 수 있지만 참이라는 것은 알 수 있다. 1은 2가 아니기 때문이다. 앞에서 변수에 대해서 설명을 했는데 변수를 지정할 때에는 = 와 같은 등호 기호를 사용한다. 하지만 같다는 표시를 하는 비교 연산자로 == 와 같이 등호 기호를 두 개를 사용한다. 이렇게 되면 왼쪽에 있는 값과 오른쪽에 있는 값을 비교하는 비교 연산자가 되는 것이.. 2017. 5. 16.
파이썬(python) 강의 3장 - 문자열과 데이터 형 - 파이썬(python) 강의 3장- 문자열과 데이터 형 - 이번 강의는 파이썬의 문자열과 데이터 형에 대해서 배울 것이다. 앞선 강의에서는 숫자에 대해서만 생각을 해보았는데 파이썬은 문자열도 당연히 사용가능하다. 이를 string이라고 한다.우선 첫 번째 강의에서 했던 Hello world를 출력하는 것을 생각해보자. 이 때 벌써 문자열을 사용하여 출력을 하였다. 문자열은 ‘ ’나 “ ”를 사용하여 지정한다. 하지만 ‘ “를 같이 사용하면 안 된다. ’으로 시작한 문자열은 ‘으로 끝을 해야 하고 ”일 경우에도 “으로 마무리를 해야 한다. 문자열을 가지고 다양한 연산들을 할 수 있다. 우리는 숫자의 계산을 할 때 +(더하기) 와 *(곱하기)의 연산을 사용한다. 이와 마찬가지로 문자열에도 더하기와 곱하기 연산.. 2017. 5. 16.
운영체제 26장 - 파일 관리(1) : 파일 할당 - 운영체제 26장- 파일 할당 - 앞선 장들에서는 운영체제가 하는 역할 중 가장 중요하다고 볼 수 있는 프로세스 관리와 메모리 관리에 대해서 배웠다. 하지만 이외에도 운영체제는 다양한 일을 한다고 알고 있다. 그 중에서 파일 할당에 대한 것을 알아보겠다. 컴퓨터 시스템 자원에서 가장 중요한 부분은 CPU이다. CPU를 어느 프로세스에 나누어 줄 것인가가 프로세스 관리를 하는 역할이다. 그 다음 중요한 자원이 메인 메모리인 주기억장치이다. 메인 메모리에 대해 페이징이나 가상 메모리와 같은 방법을 사용하는 것이 메인 메모리 관리를 하는 역할에 속했다. 다음으로 중요하다고 할 수 있는 컴퓨터 시스템 자원으로는 하드 디스크와 같은 보조기억장치라고 할 수 있다. 보조기억장치는 파일 시스템을 관리하는 역할을 수행한다.. 2017. 5. 15.
운영체제 25장 - 메모리 관리(12) : 프레임 할당 - 운영체제 25장- 프레임 할당 - CPU의 이용률과 프로세스의 수는 어떤 관계를 가지고 있을까? CPU의 이용률이 높을수록 효율이 높다고 할 수 있다. 프로세스의 개수가 증가할수록 CPU의 이용률은 증가한다. 왜냐하면 프로세스의 수가 많아지면 적절하게 프로세스에 CPU를 할당할 수 있게 되고 이로 인해 CPU는 항상 일을 할 수 있게 된다. 하지만 앞에서 배운 요구 페이지 기법을 사용하게 되면 일정 범위 이상의 페이지가 메인 메모리에 올라오게 되면 CPU의 이용률이 감소하게 된다. 왜냐하면 페이지가 메인 메모리에서 가득 차 있게 되면 page-in/out을 통해 페이지 결함으로 CPU가 동작을 못 하는 시간이 늘어나기 때문이다. CPU가 동작을 못하는 시간이 늘어나면 당연히 이용률이 낮아지는 것을 의미하.. 2017. 5. 14.
웹 사이트 만들기 웹 사이트 만들기 - 포트폴리오박스 일반 사용자가 웹이 무엇인가에 대해 질문을 한다면 인터넷이라고 대답할 수도 있고 단순하게 홈페이지라고 대답할 수도 있다. 물론 틀린 말은 아니다. 인터넷에서 웹을 지원하고 홈페이지가 웹의 형식이기 때문이다. 하지만 웹 사이트를 만드는 입장에서는 웹 서핑하기 위한 서비스인 웹 서비스로 이해를 할 수 있다. 일반 사용자가 보기에는 뉴스나 특정 글에 대해 읽기만 하지만 이러한 정보들은 분명 어딘가에서 서비스를 제공해야만 보이기 때문이다. 따라서 웹이라는 것은 웹 문서와 함께 웹 서버로 불리는 환경까지 신경을 써야한다. 개발자 입장에서는 웹 문서를 의미하는 프론트엔드와 이 문서들을 제공하는 웹 서버인 백엔드를 모두 합쳐 웹 서비스라고 말한다. 그러면 사람들은 웹 서비스인 웹 .. 2017. 5. 14.
인공지능 2장 - 인공지능 소개 (2) - 인공지능 2장- 인공지능 소개 (2) - 앞선 장에서는 인공지능의 정의와 역사에 대해서 살펴보았다. 이번 장에서는 인공지능의 요소 기술과 주요 응용분야에 대해서 살펴볼 것이다. 인공지능 요소 기술로는 탐색이 있을 수 있다. 탐색은 문제의 답이 될 수 있는 것들의 집합을 공간으로 간주하고 문제 대한 최적의 해를 찾기 위해 공간을 체계적으로 찾아보는 것을 의미한다. 탐색 방법에는 너비 우선 탐색이나 깊이 우선 탐색을 의미하는 무정보 탐색이 있고 경험적인 정보를 바탕으로 탐색하는 휴리스틱 탐색이 있다. 대표적인 휴리스틱 탐색의 알고리즘으로 A* 알고리즘이 존재한다. 또한 게임 트리 탐색으로 mini-max 알고리즘, pruning 알고리즘, 몬테카를로 트리 탐색 등의 방법을 통해 탐색을 진행한다. 몬테카를로 .. 2017. 5. 13.