분류 전체보기

Language/C

포인터(2)

포인터의 주의사항 저번에 포인터의 형이 중요하다고 하였다. 이외에도 주의할 점이 있는데, 선언만 하고 초기화를 하지 않을 때이다. 우리는 C언어에서 변수를 선언만 하고 초기화하지 않는 경우가 있는데, 전역변수나 static변수가 아닌이상 임의의 값으로 초기화 된다. 여기서 문제는 포인터는 메모리상의 주소이고 이 주소값에 잘못 접근하게 되면 중요한 영역에 접근할 수 있어 치명적이기 때문이다. (물론 잘못된 메모리 접근은 컴퓨터가 막아주긴 한다.) 따라서 우리는 널(NULL)포인터를 사용하는데, 이러한 문제를 방지하기 위해 사용한다. int a; int *pa = NULL; // 널포인터로 초기화 포인터와 배열 사실 배열은 포인터와 굉장히 긴밀한 관계를 갖고 있다. 아니 긴밀하다 못해 그냥 동치라고 봐도 무..

coding_test/BAEKJOON

백준 2209번 C언어 풀이

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 숫자가 새겨진 벌집모양의 방에서 1번방에서 N번방까지의 최소거리를 구하는 문제. 한 겹의 방 개수가 1, 6, 12, 18....인 점을 이용하여 문제를 풀고자 한다. 어디서 틀린지 잘 모르겠다. #include int geometric_sum (int a, int end) { // 밑, 더하는 지수 범위 int result = 1; int temp = 6; for (int i = 1; i < end; i..

coding_test/BAEKJOON

백준 10870번 C언어 풀이

https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 피보나치 수열을 구현하는 문제. 역시 재귀파트에 들어가 있기 때문에 재귀함수로 풀었다. #include // Reculsive solution long long fibo (int n) { if (n

coding_test/BAEKJOON

백준 10872번 C언어 풀이

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 팩토리얼을 구현하는 문제 단계별 풀이의 재귀파트에 들어가기 때문에 재귀함수와 반복문으로 풀어보자. 반복문 #include // loop solution int main () { int a; long long result = 1; scanf("%d", &a); for (int i = 2; i

Language/C

포인터(1)

메모리에 직접적인 접근을 가능하게 해주는 기능. 우리가 변수를 선언하면 이 변수는 메모리에 공간이 할당된다. 이때 메모리상에서 할당 받은 주소값을 저장하는 변수가 바로 포인터 변수이다. 포인터 변수 선언하기 결국은 주소값을 변수에 저장해야 하니 포인터값을 변수에 넣어야 한다. 선언 및 초기화 방법을 알아보자. #include int main () { int num = 10; // int형 변수 int * pnum; // int형 포인터 선언 pnum = &num; //num의 주소값으로 초기화, int * pnum = &num;로 한번에 초기화도 가능하다. printf("num : %d, pnum = %p", num, pnum); // %p는 주소를 출력하기 위한 서식문자 } 원하는 타입의 포인터 변수를..

Language/C

C언어 공부

열혈 C 프로그래밍 - 윤성우 저 이 책으로 C언어를 공부하고자 한다

coding_test/BAEKJOON

백준 1712번 C언어 풀이

https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 문제에서 설명하는 손익분기점을 구하는 문제. 문제에서 말하는 손익분기점은 총수입이 총비용을 넘어서 이익이 발생하는 지점을 말한다. 손익분기점이 존재하지 않는 경우 -1을, 손익분기점이 존재하는 경우 손익분기점을 출력하는 문제. 문제에서 고정 비용을 a, 가변비용을 b, 판매가격을 c라고 한다. 손익분기점을 p라고 하자. 우리가 찾아야 하는 p를 수학적으로 구해보면 a + b*p < c*p 를 만족하는 ..

coding_test/BAEKJOON

백준 1316번 C언어 풀이

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 그룹단어란 단어에 존재하는 모든 문자에 대해 각 문자가 연속으로 나타나는 단어를 말한다. 예를 들면 aabbccc는 그룹단어이지만 ababccc는 그룹단어가 아니며, abc는 그룹단어이다. 일정이 너무 많아 기본구조만 짜고, 세부적인 내용은 내일 해야할 듯 싶다. #include #include #include bool group_checker (const char..

CodeJin
'분류 전체보기' 카테고리의 글 목록 (30 Page)