본문 바로가기

2017/0572

[백준 알고리즘] 2193번 이친수 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다.이친수는 0으로 시작하지 않는다.이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다.예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되므로 이친수가 아니다.N(1≤N≤90)이 주어졌을 때, N자리 이친수의 개수를 구하는 프로그램을 작성하시오. #include using namespace std;int main(){ int N; cin >> N; long long arr[90]; arr.. 2017. 5. 17.
[백준 알고리즘] 1789번 수들의 합 수들의 합 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최대값은 얼마일까? #include using namespace std; int main(){long long S;cin >> S; long long x=0;long long num=1;while (x < S){x = x + num;num++;} if (x == S){cout 2017. 5. 17.
[백준 알고리즘] 1193번 분수찾기 분수 찾기 무한히 큰 배열에 다음과 같이 분수들을 적혀있다.1/11/21/31/41/5…2/12/22/32/4……3/13/23/3………4/14/2…………5/1……………………………이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. #include using namespace std; int main(){int x;cin >> x;int i;for (i = 1; x > 0; i++){x = x - i;}if (i%2 == 1){cout 2017. 5. 17.
[백준 알고리즘] 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.