분류 전체보기 83

10988번, 1157번

10988앞뒤가 똑같다. > 절반만 비교하면 됨홀수 : level > 시작 le , 끝 le만 비교하면됨짝수 : abba : 시작 ab , 끝 ab 만 비교하면됨>> strlen() / 2>> 끝: word[len - i - 1] ( 배열은 0부터 시작) // 정수 나누기에서 소수점은 버려짐, 5/2 = 2.5 > 2// 배열은 null 이 없음//  %s : 배열을 문자열로 취급함 > 자동으로 \0 (null) 추가 11571. 알파벳은 총 26개 > 배열 > 입력될때마다 ++ 1-2. 입력은 문자 , 배열은 숫자 >  freq[in_char - 'a']2. 배열이 max 보다 크면 max로 지정3. max 와 같다면 대문자로 지정  // 출력조건 >  result = i + 'A'; , result ..

C언어/백준 2024.11.13

변수, 대입, 초기화

C program : a collection of functions 함수 1. 프로그래머가 작성2. c언어 제공되는 ( 라이브러리 함수) 수학에서의 함수: 값을 계산하는 규칙 : 하나 또는 그이상의 인수를 받았을때C에서의 함수 : 명령어들을 그룹화 하고, 이름을 부여함> 어떤 함수는 계산을 하지만 , 아닌것도 있음계산하는 함수:  return 을 사용 > 반환값 지정                      ex) return y*y - x*x ; main 함수프로그램 실행시 자동으로 호출됨 ( 컴파일러) > 호출 할 필요, 헤더파일도 필요없음int main() { return 0;} return 01. 메인함수 종료 > 프로그램 종료2. 0을 반환 세미클론 ' ; ':컴파일러에게 statement의 ..

C언어/C - knk 2024.11.12

정리 - 2 -

swap 함수swap ( *a, *b); a,b 를 바꿈: 구현은 내가 해야함 putchar 함수단일 문자를 출력기본형 : int putchar(int char); 반환 int , 출력: 아스키값> 문자putchar(65); == putchar('A'); 포인터 후위연산char str[100]="hello world\n"; char *pstr = str;//pstr = str 의 시작 주소 ( ex) 0x12)//pstr++ = pstr의 다음 주소(0x13 // char형 이므로 1 byte)putchar(*pstr++) : 문자 출력후 ++putchar (*(pstr++)) ++ 한걸 출력 while문에 () 조건이 문자로 오면 아스키값으로 0인지 1인지 확인 2진수,16진수 &a=0x7ffee12a..

C언어 2024.11.11

11718번

1. 100 줄을 출력 해야함 > 반복문 사용2. fgets 로 받음 > 줄바꿈까지 받아버림 + 받아올 문자열 없으면 NULL 반환3. strcspn(line , " \n" ) : 문자열에서 그 문자의 배열 숫자 반환 > 그 값을 \0 으로 만듬// 입력조건 :  알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다4. isspace() : 공백 제거 // 공백이면 true5. strlen(line) - 1 :// arr[5] = "hello";  //  마지막 arr[4] = 'o'; , arr[5] = '\0'; // strlen(arr) = 5  >> 마지막 끝문자 확인하려면 > strlen(arr) -1   #include #include #include ..

C언어/백준 2024.11.10

5622

1. int arr[3] = {3,5,6};   sizeof (arr) = 12 // 4 + 4 + 42. eng[i] == one[i]  i 가  배열 범위 초과시 문제생김 > 문자열에서 strchr() ' 문자' , strstr() ' 문자열'3. 문자열길이 : strlen4. 배열초기화 : str[] = {};, str[] = {0};5. 배열 과 문자열 문자열: \0 으로 끝나는 문자 배열 char you[] = " happy";     // 자동으로 끝에 \0 이 추가됨 char you[] = { 'h','a'.'p','p','y'); // 배열 이므로 %s 로 출력하면(문자열) 제대로 안나옴> char you[] = { 'h','a'.'p','p','y','\0'); // 문자열>> strle..

C언어/백준 2024.11.09

1장 . 역사,장단점,난해한 C (8퀸문제),,

1UNIX (운영체제) : Assembly - B - NB > C(언어) " portability "  C로 UNIX 재구성 >  C89 or C90 > C 99 C기반 언어      C++ : C + classes, 객체지향( oop)     java : C++ 기반     C#  : Cpp + java     perl : 간단 > C특징 C로 배워야하는 이유1. C의 근본적인 특징 파악 > 다른 C 기반 통찰 가능2. C가 오래돼서 자료들이 많음3. 소프트웨어 개발에 많이사용4. C 의 단순성 > 메모리,처리능력 한정 될때 유용 > 임베디드 장점1. 효율성 : 제한된 메모리2.이식성 : 컴퓨터의 기반 > 대부분 C3. 강력함 : 짧더라도4. 융통성 : 형변환,, 버그 조심5. Standard libr..

C언어/C - knk 2024.11.09

채팅프로그램 이론

프로토콜 ( 통신 규약) : 통신할때 하나하나 의미들, 약속ex) 랜선 ( 랜선도 약속: 8개 선으로 a로는 뭘하고 b로는 뭘하고,,) 1. TCP 통신a가 b로 패킷 하나 날림 > 그걸 잘 받았는지 또 패킷 > 확인 받는 절차 : 복잡, 안전성 있음 (ex) 파일 다운 2. UDP 통신 패킷 빠르게 날리기만함 > 확인 절차 없음 (ex) 게임, 실시간 스트리밍3. 소켓 ex) 충전 타입(c ,8 , 5핀) ,돼지코, 220v  > 이런것도 다 통신 규약 여러가지 hw 들이 하나의 구멍(충전기 꼽는 그 두개 구멍)으로 통신 할 수 있도록 해주는것 소켓단 2가지1. 서버 : 서비스 제공   : 소켓을 열고 리슨 하고 있는 상태2. 클라이언트 : 서비스를 받아감 : 소켓을 열고 ip 서버주소 로 connec..

카테고리 없음 2024.11.08

파일 입출력, 표준입출력

언제 사용?1. 컴파일러 만들때2. 그림 파일 저장 해석자료는 DB로 저장, SQL 사용3. 옵션 지정 할때컴파일 따로 안하고 옵션에 따라 실행되도록 >> 실제에선 사실 라이브러리 가져다씀 하드웨어마다 데이터 저장 방법은 다 다름 ( ssd, hdd, 플로피디스크 flash memory,,,,) 임베디드 > 데이터시트를 다 읽어봐야함 한번에 얼마나 저장, 몇번 기록, 통신방식, 패킷 그래야 1byte 를 저장할 수 있음 >> 계층(단계) 을 나눔 hw driver 운영체제> read write open  >함수를 쓰면 운영체제에서 누군가 만든 driver 구현한거를 이용해서 hw에 접근 스트림write : hdd에 기록 > 때때마다 하면 굉장히 비효율적,, (ex) hdd가 한공간에 8byte > w..

카테고리 없음 2024.11.08

각종 정리 -1

크로스컴파일(A)cpu > 운영체제(리눅스) > gcc ( program1 ,p2, p3 ..)(B) cpu > 임베디드 (Arm) > 전용 컴파일러필요, 자체실행불가( 시계 같은것)>> 크로스컴파일러의 등장A-gcc(A cpu에서 동작) > 내가만든 c코드>> B cpu에서 동작하는 기계어로 번역 = A cpu 운영체제에서는 동작 x ex) apt-get install gcc-arm-linux-gneabi리눅스에서 동작하는 gcc 이긴 하지만 결과물: arm용크로스컴파일에는 gdb 디버거만 제공 gdb 명령어gcc -g program.cgdb a.outrun , lb 15 // 15번째줄에 breakpoint 소스코드 저장 과정하드디스크 > a.out  저장, 실행하면 > 메모리로 옮김메모리 내부에는 ..

C언어 2024.11.08

2908 : 상수

문제수의 크기 비교734 893 을437 398 로 읽음> 437 이 가장 큰 수-----------------------------------------------해결백의 자리 : N * 10^2     >    /100십의 자리 : N * 10^1     >    (N/10)%10 * 10일의 자리 : N * 10^0     >    (N%10)*100// 뒤집으려면..                  다 더하면 > 역수> if 문 쓰면 끝 // ' / ' 몫 , ' % ' 나머지// main 함수의 return 0 으로 잘 끝내기// 23을 뒤집으면 023 > 320이 됨의 유의// 거꾸로 읽는다고 한걸 빼먹으면 안됨.입력 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. >> 이 경우..

C언어/백준 2024.11.07