기초 4

백준2108 통계학 - C언어

1. 문제의 접근 수가 최대 500,000개 주어지고, 각 정수의 절대값은 4,000을 넘지 않기 때문에 최대의 경우로 계산해도 20억이 가능하므로 배열은 Integer type으로 만든다. #include #include #include #define INF 987654321 struct st { int tag; int fre; }Fre[4000 + 4000 + 1] = { {0,0} }; 하지만 여기서 일반 배열로 선언하기보다 최빈값을 구하기 위해서 숫자와 빈도를 기록하는 구조체를 선언한다. tag 는 해당 구조체가 저장하는 숫자이고, fre 는 몇 번 나왔는지 기록하기 위한 수이다. 배열의 개수 4000+4000+1은 정수의 절대값이 4000이 넘지 않기 때문에 -4000~-1, 1~4000 개의 ..

알고리즘 2021.02.09

C언어의 기초 - 변수와 배열

*주의 - 혼자 학습하여 틀린 내용이 있을 수 있으니 알려주시면 진심으로 감사드리겠습니다. 1. 변수 변수의 종류는 2가지로, 전역변수(Global variables)와 지역변수(Local variables)로 이루어져있다. 둘의 구분은 선언시의 위치이며, 특정 블럭 {} 안에 선언하면 지역변수라고 부르며 그 외는 지역변수라고 부른다. 지역 변수는 기본적으로 블럭 안에서만 작동하며 지역변수로 선언하기 전에 이미 선언될 경우, 먼저 선언된 변수가 블럭을 벗어날 동안 보이지 않는 상태(invisible)가 된다. 변수는 앞선 페이지에서 언급한 것처럼 선언이 반드시 필요하며, 동시에 초기화도 진행할 수 있다. 초기화를 하지 않고 선언만할 시, 지역변수는 원래 메모리에 저장되어있던 쓰레기값(garbage)을 가..

C언어 2021.02.03

C언어의 기초 - 변수와 상수

*주의 - 개인적으로 학습한 내용이므로 틀린 부분을 알려주시면 진심으로 감사드리겠습니다. 가. 변수(Variables)와 상수(Constants) C는 기계를 직접 다룰 수 있는 어셈블리어(Assembly language)에 가장 가까운 언어이다. UNIX 체제에서 사용하기 위해 개발된 언어이며 절차지향적이므로 코드의 순서에 굉장히 유념해서 봐야한다. 또한 C는 한 번에 모든 코드를 목적 프로그램을 바꿔주는 컴파일 언어이기 때문에 한 번 빌드에 성공하면 빠르게 실행이 가능한 장점이 있어 알고리즘 시험을 볼 때도 C로 보곤 한다. 기계어에 가장 가까운 언어이기 때문에 하드웨어에 직접 접근도 가능한데, 우선 기초부터 쌓기 위해 C언어가 어떤 방식으로 작동하는지부터 차근차근 학습하기로 했다. 이 글은 이진수와..

C언어 2021.02.01

C언어를 위한 사전 지식

1. 기초 논리회로 *주의 - 개인적으로 학습한 내용이므로 틀릴 수 있습니다. 잘못된 내용일 경우 알려주시면 진심으로 감사드리겠습니다. 가. 논리 게이트 Logic Gates 컴퓨터는 계산을 위해 전기적인 시스템을 이용한다. 연산에 쓰이는 회로 부품을 논리 게이트라고 부르는데, 일정한 수준의 전압 이상의 전압을 걸면 신호로 인식하는 부품이다. 예로 3V 이상의 전압을 신호로 인식하는 게이트를 사용하면, 3V 미만의 전압은 전기가 통하지 않게, 그 이상은 통하도록 만들어져 있다. (혹은 반대로 작동) 논리 게이트는 6가지를 사용하며, 1개를 제외한 나머지 5가지는 두 신호를 입력받아 정해진 규칙에 따라 신호로 내보낸다. 나머지 1개는 한 신호를 입력받아 그 입력을 반대로 뒤집어주는 역할을 한다. 전기 신호..

C언어 2021.01.31