분류 전체보기

개발/c

[C언어] scanf함수에 &를 사용하는 이유는 무엇일까?

c언어에서 printf함수를 배웠다면 다음은 scanf 함수이다. 여기서 c언어와 다르게 변수 앞에 문자 &를 추가로 붙이는데 그 이유는 무엇일까? 1. printf 함수의 경우 우선 변수에 대해 간단히 이해하고 넘어가 보자 int a; a = 10; 이러한 코드가 있다고 생각해 보자. 정수 변수 a를 선언하고, a에 10을 대입한다. a에 직접 대입 연산자 =와 대입할 정수를 입력해 주면 된다. 그러면 a라는 이름으로 명명된 정수 크기 메모리 공간에 10이라는 정수가 들어간다. printf("%d", a); 우리는 printf문을 통해 a를 불러 'a라는 변수에(a라는 이름으로 명명된 특정 주소 정수 크기 메모리 공간에) 들어있는 값'을 이용하게 된다. 2. scanf의 경우 scanf("%d", &a..

알고리즘/백준 문제풀이

[C언어] 쉽게 푸는 백준 11382번 꼬마 정민 문제

1. 문제 설명 공백으로 나누어지는 세 숫자가 입력되고, 세 숫자의 총합을 출력한다. 2. 접근법 1) 공백으로 구분해 주어지는 세 숫자를 입력으로 받아 2) 모두 더해 출력한다 1) 세 숫자를 입력받기 예제를 보면 입력으로 들어가는 숫자는 정수이고 따로 문제에서 명시하지 않았으므로 정수 입력으로 판단한다. 또한 입력 조건에 각 정수는 양의 정수 1보다 크고 10^12(=1조)보다 작은 크기까지 입력받을 수 있다. 정수형으로 1조까지 입력받으려면 어떤 자료형으로 선언해야 할까? 우선 정수 선언할 때 가장 많이쓰는 int의 경우를 보자. int형으로 변수를 선언하면 4byte이다. 이는 4*8=32bit이고, 2^32의 크기를 가진다. 여기서 -부분과 +부분이 있으니 반으로 나눠주면 양의 정수 부분은 2^..

개발/컴퓨터알고리즘

최대 숫자 찾기 - 순차 탐색 알고리즘(C언어)

문제를 해결하기 위한 절차인 알고리즘을 공부할 때 처음으로 나오는 것은 최대 숫자 찾기이다. 정수 배열 중 최대 숫자 찾기에는 여러 방법이 있는데 이 중에서도 가장 기본적인 아이디어인 순차 탐색 알고리즘을 알아보자 1. 문제 이해 먼저 우리는 가장 큰 숫자를 어떻게 찾을까? 전체적으로 숫자들을 보며 눈에 띄는 큰 숫자를 찾은 뒤 더 큰 숫자가 없나 확인해 볼 것이다. 그리고 더 큰 숫자가 보이지 않는다면 탐색을 종료할 것이다. 하지만 컴퓨터 문제로 가져온다면 최대 숫자 찾기 문제는 달라진다. 컴퓨터는 저 종이를 어떻게 깔아놓을까? 먼저 컴퓨터는 CPU 연산 전 작업을 위해 메모리에 숫자를 로드한다. 해당 메모리에서 연산할 것을 레지스터에 가져와 연산하게 된다. 편하게 메모리라는 책장에서 작업을 위해 레지..

개발/컴퓨터알고리즘

선택 정렬, 버블 정렬같이 사용되지 않는 알고리즘을 공부하는 이유는 무엇일까?

선택 정렬, 버블 정렬같이 사용되지 않는 알고리즘을 공부하는 이유는 무엇일까? chatGPT와 함께 알아보자. 컴퓨터알고리즘 수업시간에 이진 탐색과 시간복잡도를 배운다. 이진 탐색을 통해 빠른 탐색을 위해서는 자료를 정렬해야 한다는 것을 알게 되어 자료를 정렬하는 여러 방법에 대해 배우게 된다. 많은 정렬이 있는데 결국 쓰이는 좋은 정렬의 조건은 1. 시간복잡도가 낮을 것(평균, 베스트, 워스트 케이스 모두에서. 특히 평균의 경우) 2. 메모리 사용 크기가 적으면 좋음 3. 안정성이 있으면 좋음(안정성이란 만약 같은 값이 있을 때, 정렬을 할 때마다 순서가 바뀌지 않고, 항상 원래 있던 선후 관계를 뒤바꾸지 않고 일정하게 나오는 것) 이 정도이다. chatGPT에게 가장 효율적이고 널리 사용되는 정렬 알..

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