본문 바로가기

전체보기

백준 1271번 - 엄청난 부자2 https://www.acmicpc.net/problem/1271 1271번: 엄청난 부자2 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) www.acmicpc.net 문제 문제갑부 최백준 조교는 동전을 최소로 바꾸는데 성공했으나 김재홍 조교가 그 돈을 발견해서 최백준 조교에게 그 돈을 나누자고 따진다. 그 사실이 전 우주로 알려지자 우주에 있던 많은 생명체들이 자신들에게 돈을 분배해 달라고 당장 달려오기 시작했다. 프로토스 중앙 우주 정부의 정책인, ‘모든 지적 생명체는 동등하다’라는 규칙에 입각해서 돈을 똑같이 분배하고자 한다. 한 생명체에게 얼마씩 돈을 줄 수 있는가? 또, 생명체들에게 동일하게 .. 더보기
백준 15727번 - 조별과제를 하려는데 조장이 사라졌다 https://www.acmicpc.net/problem/15727 15727번: 조별과제를 하려는데 조장이 사라졌다 3학년 1학기를 재학 중인 성우는 ‘빨간눈 초파리의 뒷다리 털의 개수와 파인애플 껍질의 이해’라는 과목을 수강 중이다. 기말고사를 맞이하여 교수님은 수강생들에게 조별과제를 내주었고, www.acmicpc.net 문제 3학년 1학기를 재학 중인 성우는 ‘빨간눈 초파리의 뒷다리 털의 개수와 파인애플 껍질의 이해’라는 과목을 수강 중이다. 기말고사를 맞이하여 교수님은 수강생들에게 조별과제를 내주었고, 그 내용은 다음과 같다. 중간고사 이전에 배운 빨간눈 초파리의 뒷다리 털의 개수를 구하는 방법을 이용하여, 파인애플 껍질의 두께를 구하는 공식을 과학적인 근거와 함께 A4용지 10장 이상으로 제출.. 더보기
백준 1252번 - 이진수 덧셈 https://www.acmicpc.net/problem/1252 1252번: 이진수 덧셈 첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다. www.acmicpc.net 문제 두 개의 이진수를 입력받아 이를 더하는 프로그램을 작성하시오. 입력 첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다. 출력 첫째 줄에 이진수 덧셈 결과를 출력한다. 결과가 0인 경우를 제외하고는 출력되는 이진수는 항상 1로 시작해야 한다. 예제 입력 1001101 1001.. 더보기
[SQLite] SQLite DB와 table 생성 SQLite를 처음 사용하려면 먼저 DB와 table을 만들어야 한다. 만들기 위해서는 sqlite exe 파일이 있어야 하는데, 이는 아래 링크의 SQLite 홈페이지에서 다운로드할 수 있다. ('sqlite'를 검색해도 나온다) SQLite Home Page SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world. SQLite is built into all mobile phones and most computers and com.. 더보기
C언어 - 포인터 기초 포인터가 C언어의 꽃이라 불릴 정도로 중요한 이유는... 포인터를 이용하여 메모리에 "직접 접근"이 가능하다. 이외에도 많은 장점들이 있으니 공부하면서 차근차근 알아보자. 1. 포인터 변수 선언 방법 데이터 타입과 변수 사이에 별표 * 를 추가하여 포인터 변수를 선언한다. char c; //문자형 변수 c를 선언 char *c; //문자형 포인터 변수 c를 선언 int a; //정수형 변수 a를 선언 int *a; //정수형 포인터 변수 a를 선언 2. 변수선언 및 값 할당 메모리 그림 포인터 변수는 메모리 번지를 다루는 변수이며 즉 포인터는 메모리 번지라는 말이다. 이렇게 해서 b를 출력한다면 1이 출력되지만, 다음과 같이 p를 출력한다면 108번지에 저장된 a의 메모리 주소인 100이 출력된다. 주소.. 더보기
C언어 - static 함수가 몇 번 호출되었는지 알려주는 함수를 작성해보자. #include void cnt() { int b; b += 1; printf("%d\n", b); } int main() { cnt(); cnt(); } 위 코드를 실행해봤을 때 b가 초기화가 되어있지 않다는 오류가 발생한다. #include void cnt() { int b=0; b += 1; printf("%d\n", b); } int main() { cnt(); cnt(); } 하지만 이렇게 b를 0으로 초기화한다면 우리는 호출한 함수의 횟수를 누적할 수 없게된다. 그렇다면.. #include int b = 0; void cnt() { b += 1; printf("%d\n", b); } int main() { cnt(); cnt(); } 이렇.. 더보기
C언어 - 전역변수, 지역변수 main()함수에서는 5를 할당한 i를 선언하고 또 다른 함수를 만들어 10을 할당한 j를 선언하여 각 함수에서 출력해보자. #include int getprint(int j) { j = 10; printf("%d\n", j); return 0; } int main() { int i, j = 0; i = 5; printf("%d\n", i); getprint(j); } 가장 일반적이라면 위와 같은 코드로 작성할 수 있다. 이 때 우리는 getprint()함수에 매개변수를 통해 j의 값을 전달해줄 수 있다. 왜냐하면 getprint에서는 j가 선언되어있지않고 main() 함수 범위에서만 사용이 가능하기 때문이다. 한국어 느낌으로 말하자면... i와 j는 main() 지역에서 선언되어있고 매개변수를 통해 g.. 더보기
C언어 - 숫자 표현 범위 아래의 코드를 살펴보자. #include int main() { int s = 0; int i; for (i = 1; i 더보기