전체 글

HSU 21학번 4학년 컴퓨터 공학부(웹공학 트랙) 재학중입니다. 코딩 잘 못 합니다. (항시 노력 중..) 백준 : possible 깃허브 : https://github.com/T3Tm
자료구조/by C

c언어 vector 구현

c++ vector를 c언어에서도 쓰고 싶어서 간단하게 만들어 봤습니다. #include typedef long long ll; typedef struct node{//해당하는 값을 arr로 갖는다. int v; }node; typedef struct vector{//인덱스 접근 가능해야 하며, size 존재, back, pop_back, node* arr;//값을 저장하는 곳 ll size;//크기 ll capacity;//전체 크기 }vector; void init(vector *q){ q->arr=(node *)malloc(sizeof(node)*(64)); q->size=0; q->capacity=64;//초기 크기 64개 } void push_back(vector *q,int v){//v가 추가..

자료구조/by C

c언어 queue 구현

나만의 queue 구현 코드 #include #define ll long long typedef struct newtype{ int v;//자료형 새로 추가하면 된다. }newtype; typedef struct node{ struct newtype x;// struct node* next;//다음 노드 가리키기 }node; typedef struct queue{//front,pop,size,empty,push node* front;//처음에 연결 node* back;//마지막에 바로 연결 ll size; }queue; void init(queue* q){ q->front=NULL; q->back=NULL; q->size=0; } void push(queue *q,newtype v){//qush하려면 n..

코딩테스트/백준 코딩

백준 / 시뮬레이션 / 아주 서바이벌 (boj23293, c11, python3)

문제 https://www.acmicpc.net/problem/23293 23293번: 아주 서바이벌 때는 2021년, 대한민국에는 '아주 서바이벌'이라는 온라인 게임이 대 유행 중이다. 이 게임은 바다 한가운데의 섬, 아주 아일랜드에서 벌어지는 배틀로얄 게임으로 플레이어들은 아주 아일랜드의 www.acmicpc.net 입출력 해설 해당 문제는 굉장히 심플하다. 하지만 티어가 낮아서인지 문제가 굉장히 주어지는 것이 적다. 그것을 하나하나 설명해보겠다. 이 문제에서 주의깊에 봐야하는 것이 뭐냐면 1. 부정행위가 무엇인지. 2. 차단행위가 무엇인지. 3. 부정행위를 했을 때?, 차단행위를 했을 때? 일단 위에 1,2,3번을 보기 전에 해당 문제를 초기 세팅을 보자. 1. 플레이어들은 모두 1번 지역에서 시작..

코딩테스트/백준 코딩

백준 / 브루트포스 / 표적지 옮기기 (boj23973, c11)

문제 https://www.acmicpc.net/problem/23973 23973번: 표적지 옮기기 첫째 줄에 사격판의 크기를 나타내는 정수 N과 M이 주어진다. (1 ≤ N, M ≤ 2,500) 다음 N개의 줄에는 사격판의 정보가 주어진다. 0은 사격이 명중하지 않은 칸을, 1은 사격이 명중한 칸을 의미한 www.acmicpc.net 입출력 해설 일단 이 문제는 굉장히 악랄하다. 처음에는 굉장히 쉬워보이지만 잘못 접근하다가는 시간초과를 맛볼 수 있게 된다. (필자도 그러했음..) 일단 이 문제는 n과m이 최대 2500으로 전부를 돌아보면서 하기에는 2500*2500으로 정답이 되는지 판별까지 하기에는 시간초과를 볼 수 있다. 그렇기에 판별을 할 때 사격판이 일단 1이 되는지를 확인한다. 왜 그럴까? ..

코딩테스트/백준 코딩

백준 / 정수론 / 뒤집어진 소수 (boj10859, c11)

문제 https://www.acmicpc.net/problem/10859 10859번: 뒤집어진 소수 어제 자다가 알람 시계를 떨어뜨렸는지, 08:15분이 51:80분이 되어 있었다. 그때 나는 디지털로 표시된 어떤 숫자는 180도 뒤집혔을 때도 숫자가 될 수 있다는 걸 깨달았다. 소수 18115211이 디지털로 www.acmicpc.net 입출력 해설 1. 입력 들어오는 수가 소수인지 판별한다. 2. 소수일 때 뒤집는다. 3. 뒤집으면서 3,4,7이 들어있으면 수가 될 수 없으므로 그만 뒤집고 no를 출력한다. 4. 다 뒤집었을 때 소수인지 판별하면 된다. 정답코드 c언어 더보기 #include #include #include /* https://www.acmicpc.net/problem/10859 1..

코딩테스트/알고리즘 공부

- 2일차 기초 코드 작성 요령 (함수 인자,코드 작성 팁)

해당 포스터는 파킹독님의 유튜브를 보고 작성되는 점 참고해주세요. https://www.youtube.com/watch?v=6lhVHP8bkPA 함수 인자 다음 두 코드를 보고 차이점을 한 번 생각해보자. void func(int a){ a++; } main(){ int a=1; func(a); printf("%d",a); } void func(int a[]){ a[0]++; } main(){ int a[3]={1,2,3}; func(a); printf("%d",a[0]); } 이 둘의 코드를 보고 차이점을 명확하게 설명할 수 있는가? Yes라고 대답했다면 당신은 평소에 c언어에 대해 잘 이해하고 있다고 할 수 있다. 이 둘의 코드의 차이점은 함수의 매개변수가 call by value의 형태로 넘어가는지..

코딩테스트/알고리즘 공부

- 1일차 기초 코드 작성 요령 (시.공간복잡도,실수)

해당 포스터는 파킹독님의 유튜브를 보고 작성되는 점 참고해주세요. https://www.youtube.com/watch?v=9MMKsrvRiw4 시간복잡도 컴퓨터는 1초에 대략 3~5억 개 정도의 연산이 가능하다.(횟수차이존재) 단순한 연산(and, or, +, -) 복잡한 연산(*, /, function call, =) 그럼 아래의 소스코드를 한 번 해석해보자. (스스로 한 번 진행해보자) int func1(int arr, int n){ int cnt=0; for(int i=0;i최대 2초 정도 시간 소요 if n==10억 => 최대 20초 정도 시간 소요 하지만 매번 이런 식으로 연산의 모든 횟수를 따져보면서 시간복잡도를 계산하면 매우 힘들 것이다. 그렇기에 우리는 Big - O 표기법을 이용하여 코..

코딩테스트/알고리즘 공부

다시 시작하는 이세계 생활

요즘 들어 공부를 너무 안 했는데 종강했기에 재활치료 겸 다시금 알고리즘을 처음부터 공부하기로 했다. 해당하는 알고리즘의 방향은https://www.youtube.com/@BaaaaaaaaaaaaaaaaaaaaarkingDog/featured BaaarkingDogwww.youtube.com 여기 있는 바킹독 선생님의 알고리즘 공부 순서대로 시작할 생각이다. 진행하는 언어는 무조건 초심자들이 제일 먼저 시작하는 c언어로 진행하려고 한다. 중간 중간 c++에서는 stl을 통해 쉽게 구현할 수 있는 것들을 본인은 하나하나 다시 공부해가며 직접 구현하여 사용할 생각이다. 직접 구현한 코드들은 github나 블로그에 올려놓을 것이며 코드를 보면서 아쉽거나 고쳤으면 하는 부분들은 댓글로 계속해서 적극 피드백 받습..

견우직녀달
행복한 블로그