👩‍💻 알고리즘 30

[한빛미디어 혼공학습단_혼공C] 6주차 스터디 ch9 포인터

저번에 했었던 파트 뒤부터 해보겠다! 포인터로 값을 교환하는 예제를 풀어봤다. 1차로 코드를 훑어보고, 2차로 한 줄씩 뜯어서 그림 그리면서 이해해보고, 3차로 출력값을 생각하며 손코딩을 했다. 마지막으로 다시 복습할 겸 코드 쳐보기! 포인터의 대입 규칙 1.포인터는 변수의 형태가 같을 때만 대입해야 한다. (int는 int형끼리,double은 double끼리) 2.모든 주소와 포인터의 크기는 같다. 3. 형 변환을 사용한 포인터의 대입은 가능하다. 포인터는 함수 간에 효과적으로 데이터를 공유할 수 있어 임베디드 프로그램에 반드시 필요하다. 왜 임베디드는 효과적으로 데이터를 공유할 수 있어야 하지?에 대한 의문이 들었다. 그래서 gpt한테 물어봄자원 절약: 임베디드 시스템은 주로 작고 제한된 자원을 가지..

백준 11718

https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net EOF 문제 EOF는 End Of File 이라는 뜻이며, 파일의 끝, c언어에서는 EOF를 파일의 끝이라고 인식한다. EOF는 -1의 값을 가지고 있다. #include int main() { char s; while(scanf("%c",&s) != EOF) { printf("%c",s); } return 0; } EOF 선언이 될 때까지 입력을 계속 받겠다는 뜻이 된다. 문자..

백준 5597

https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출..

[한빛미디어 혼공학습단_혼공C] 5주차 스터디 ch8 배열

배열은 한 번에 변수 여러 개를 선언한다. 연속된 저장 공간을 할당하고 초기화할 수 있어 같은 유형 변수가 많이 필요할 때 사용한다. 배열의 초기화는 선언시 최초 한 번만 가능하다. 그 이후에는 배열 요소에 일일이 값을 대입해야 하고, 초기화 때처럼 중괄호를 사용한 대입 연산으로 한 번에 값을 바꾸는 것은 불가능하다. 배열도 변수와 마찬가지로 최초 할당된 저장 공간에는 쓰레기 값이 저장되어 있다. 해서, 배열도 원하는 값을 가지려면 선언과 동시에 초기화를 해야 한다. 중괄호로! 배열 문제인 백준 10871 문제도 풀어봤다 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오. X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다...

백준 10951

#include int main() { int A, B; while(1){ scanf("%d %d", &A, &B); printf("%d\n", A+B); } return 0; } 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 라길래 위 처럼 적었는데,생각해보니까..이거 무한로프 도는데 메모리 괜찮나? 하는 생각이 들었음 그래서 멈춰줄 장치가 있어야 할 것 같다고 생각했고, 구글링을 통해 EOF라는 것을 찾았다. EOF란 데이터 입력이 없으면 실행을 끝내는 상수이다. 해서 고치면, #include int main() { int a,b; while(scanf("%d %d",&a,&b) != EOF ) { printf("%d\n", a+b ); } return 0; } EOF가..

백준 11382

[ 문제 ] 꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다! 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 10^12)이 공백을 사이에 두고 주어진다. 간단한 입출력 문제라 그냥 %d 썼는데 런타임 에러 나길래 조건을 하나 안 봤다는 사실을 알게 됐다. 10^12 이내여야 함. 10¹² x 3일 경우 int 자료형의 범위를 초과하기 때문에 int 보다 더 큰 범위인 long long으로 변수를 선언해야 한다. #include int main() { long long a,b,c; scanf("%lld %lld %lld",&a,&b,&c); printf("%lld\n",a+b+c); return 0; }

[한빛미디어 혼공학습단_혼공C] 4주차 스터디 ch7

여러 가지 함수 유형 함수의 원형은 반환형 함수(매개 변수) 하지만 언제나 함수에 반환형과 매개형 변수가 있는 것은 아님. 매개변수가 없는 함수 키보드로 수를 입력하면 양수를 반환하는 함수를 만든다면 호출한 함수로부터 값을 받을 필요가 없으므로 매개변수도 필요 없음 이 때 매개변수 자리에는 void를 사용함 반환값이 없는 함수 함수는 기능에 따라 형태가 결정됨 데이터를 받아서 화면에 출력하기만 하는 함수는 특별히 반환값이 필요 없음. 매개변수와 반환값이 다 없는 함수 일정한 문자열을 여러 번 출력하는 함수라면 매개변수와 반환값이 모두 필요 없음. 함수의 매개변수와 반환형에 모두 void를 씀 재귀호출 함수 함수는 보통 다른 함수를 호출하지만, 재귀호출함수는 자기 자신을 호출함

[한빛미디어 혼공학습단_혼공C] 3주차 스터디 ch5~ch6

이번주 미션은 혼공노트 활용하기랑 크리스마스 소개팅 예문 작성하기! 나는 막혔던 포인터 관련 혼공노트를 보고 공부했다! 챕터 9-1의 연습 문제도 풀어보기! 미리 결과를 예상하고 코드를 쳐봤다! +const 사용까지! const는 값이 바뀌면 안 되는 공간인 문자열 상수 때문에 함수의 매개변수를 통해서 값을 바꿀 수 없도록 하기 위해서 사용한다는 사실을 알게 되었다. 내친김에 정처기 기출 한 문제까지 풀었다. https://www.youtube.com/watch?v=AQFNQjfsLmc int (*p)[3] = NULL 의미가 뭔지 모르겠어서 영상 보면서 이해했다. int 3 스택을 가리키는 포인터인 듯 소개팅 주선.. #include int main() { char input[100]; printf("..

[한빛미디어 혼공학습단_혼공C] 2주차 스터디 ch3~ch4

03. 변수와 데이터 입력 03-1. 변수 변수는 데이터를 저장해놓는 공간 변수의 형태를 자료형 혹은 데이터형이라고 하고, 정수형과 실수형으로 구분 같은 정수형이라도 char,short,int,long,long long으로 구분 정수 자료형 : int 형태 : int a(변수명); ( => 컴파일러야, 정수를 저장할 공간을 a라고 정하고 4바이트 할당할게! ) 변수를 선언하면 메모리에 저장공간이 생긴다. 컴퓨터의 메모리 공간은 재활용되기 때문에, 처음엔 무슨 값이 들어있었는지 이해할 수 없다. 이 값을 쓰레기 값이라고 하는데, 이 때문에 프로그램에 오류가 발생할 수 있으므로 초기화 과정이 필요하다. 변수 선언할 때 규칙 1. 중괄호 {}안에 변수를 선언하며 선언하는 위치부터 블록 끝까지 사용 가능 2. ..

[한빛미디어 혼공학습단_혼공C] 1주차 스터디 ch1 ~ ch2

복학 후 재수강을 위해 미리 다시 하는 C 공부 C의 꽃인 포인터에서 처참히.. 무너졌기에 이번에는 그렇지 않으리라 다짐하며 힘들게 시작 정말 기초적인 부분은 가볍게 정리하고, 까먹었던 부분, 몰랐던 부분을 집중해 공부하고, 코드를 직접 써보는 것에 초점을 둘 생각이다. 챕터 1 1. C언어 소개 C란 유닉스 시스템에 사용하기 위해 만들어진 B언어를 발전시키서 만든 언어-> 어셈블리어는 컴퓨터의 하드웨어가 바뀌면 새로 개발해야 하는 문제가 있었는데, 이러한 불편을 해소하고자 만들어졌다. 장점:1. 시스템 프로그래밍이 가능2. 다른 컴퓨터에서도 사용할 수 있는 프로그램을 만들 수 있음.3. 함수를 사용해 개별 프로그래밍 가능 2. 컴파일 정의: 소스파일을 기계어로 바꾸는 과정 챕터 2 1. c 구조와 출력..