초기 네이버 기록 54

[비트연산]대소문자 변경을 비트연산으로 해보자.

대소문자 변경을 할 때 우리는 XOR연산을 통해 쉽게 할 수 있다.A^32를 해주게 되면 a가 되고 a^32해주게 되면 A가 된다.이건 매우 간단하게 설명이 가능한데, a와 A가 아스키 코드 값으로 32만큼 차이가 나기 때문이다.a 는 아스키 코드 값으로 97 A는 65 이다.둘 사이 차이는 32로 서로 32를 더하고 빼면 나오는 값이다. 비트로 보기a = 97을 8비트로 보면 0110,0001 이고 A = 65 [0100,0001] 이다.이걸 조금 더 보면 알파벳의 갯수는 26개이고, 각각을 비트로 표현하면 A = [0100,0001](65) Z =[0101,101](90)이다.a = [0110,0001](97) z = [0111,1010](122)이다.따라서 A^32가 어떤의미인가, 32를 비트로 표..

이코테 구현알고리즘 예제 1번 상하좌우 -방향벡터 (C언어)

#include int main() { int input; scanf("%d", &input); //int map[100][2];//0:x 1:y int x = 1; int y = 1; char order[2]; for (int i = 0; i 1) x--; else if (order[0] == 'R' && x 1) y--; else if (order[0] == 'D' && y < input) y++; } printf("%d %d", y, x); } 난 이렇게 풀었는데 방향 벡터를 이용해서 푸는 방법이 더 깔끔한 것 같다. dx[4] = {0, 0, 1, -1};(행) dy[4] = {1, -1, 0, 0};(열)이렇게 미..

백준 왕실의 나이트(C) 수학적 풀이, 완전 탐색적 풀

#include int main() { int count = 8; char input[3]; scanf("%s", input); int check = input[0] + input[1] - 'a' - '1'; if (check == 0 || check == 14) count -= 6; else if (check == 1 || check == 13) count -= 5; else if (check == 2 || check == 12) count -= 4; else if (check == 3 || check == 11) count -= 3; else if (check == 4 || check == 10) count -= 2; printf("%d", count); } 좀 이상하게 조건문에 꽂쳐서 수학적으로 풀..

백준 (C언어) (구현) 게임개발 -방향벡터 및 맵 탐색

#include #include int main() { int length, width;//세로, 가로 int x, y, direction;//방향은 0:북, 1:동, 2:남, 3:서 int** map;// 세로 가로, 0육지 1바다 scanf("%d %d", &length, &width); map = (int**)malloc(sizeof(int*) * (length)); //int move[4][2] = {{0,-1}, {1,0}, {0,1}, {-1,0}};//북, 동, 남 ,서 int move[4][2] = { {0,1}, {-1,0} ,{0,-1} ,{1,0} };//북,서,남,동 scanf("%d %d %d ", &x, &y, &direction); for (int i = 0; i < lengt..

스택과 큐 자료구조 C로

#include #define MAX_STACK_SIZE 100 int stack[MAX_STACK_SIZE]; int top=-1; int IsEmpty(){ if(top=MAX_STACK_SIZE-1) return true; else return false; } void push(int value){ if(IsFull()==true) printf("스택이 가득 찼습니다."); else stack[++top]=value; } int pop(){ if(IsEmpty()==true) printf("스택이 비었습니다."); else return stack[top--]; } int main(){ push(3); push(5); push(12); printf("%d ",pop()); printf("%d ",po..

도서관리 프로그램 구조체 활용버전 씹어먹는 C언어

드디어 구조체!! #include struct Human { int age; int height; int weight; }; int main() { struct Human Psi; Psi.age = 99; Psi.height = 185; Psi.weight = 80; printf("psi에 관한 정보\n"); printf("나이: %d\n", Psi.age); printf("키: %d\n", Psi.height); printf("몸무게: %d\n", Psi.weight); return 0; } 드디어 구조체를 배운다!! 슬슬 C언어 공부의 고지가 보인다. 최소 이 정도는 끝내고 가야 한다의 이정도를 끝내가는거다. 아자아자!! 노트필기중이라 블로그에는 별로 남기는게 없는데 진짜 대박이다 구조체!!! 새로운..

도서관리 프로그램 최종본 (씹어먹는 C)

/*문제 1 길이가 최대 100 인 문자열을 하나 입력 받아서 문자열을 역순으로 출력하는 함수를 만들어보세요. (난이도 : 下) 예를 들어서 "abcde" 입력 --> "edcba" 출력 함수가 할 일: 문자열의 순서를 역순으로 바꿔서 출력한다.문자열의 갯수를 세고, 제일 뒤에 제일 앞을 넣고 그걸 문자열의 길이 /2까지 반복하는 \0이 나오는 n구하고 arr[n]에 대입 arr[i]=arr[n-i] 범위는 n/2 리턴값:num 받아야하는 인자: char형 문자열 하나 */ #include int change(char* str); int main() { int num; char arr[100]; printf("문자열을 입력하세요"); scanf("%s",arr); num = change(arr); pri..

728x90