[C언어] Linked List (3) - moveOddItemsToBackLL 함수 구현하기
·
크래프톤 정글/Code 정글(C언어)
Linked List (3) - moveOddItemsToBackLL 함수 구현하기연결 리스트에서 홀수 정수 노드들을 뒤쪽으로 이동시키는 함수주어진 요소 확인하기구조체LinkedList: (struct) 연결 리스트 구조체size: (int field) 연결 리스트 요소 갯수*head: (pointer field) 연결 리스트 첫 노드의 주소ListNode: (struct) 노드 구조체item: (int field) 노드의 값*next: (pointer field) 다음 노드의 주소moveOddItemsToBackLL 함수의 매개 변수*ll: (pointer) 연결 리스트 주소 핵심 아이디어빈 리스트 / ll->size가 1개 이하인 경우 즉시 return현재 노드(cur), 이전 노드(pre), 마지막..
[C언어] Linked List (2) - alternateMergeLL 함수 구현하기
·
크래프톤 정글/Code 정글(C언어)
Linked List (2) - alternateMergeLL 함수 구현하기두 번째 리스트의 노드들을 첫 번째 리스트의 자리 사이사이에 삽입하는 함수.주어진 요소 확인하기구조체LinkedList: (struct) 연결 리스트 구조체size: (int field) 연결 리스트 요소 갯수*head: (pointer field) 연결 리스트 첫 노드의 주소ListNode: (struct) 노드 구조체item: (int field) 노드의 값*next: (pointer field) 다음 노드의 주소alternateMergeLL 함수의 매개 변수*ll1: (pointer) 첫번째 연결 리스트 주소*ll2: (pointer) 두번째 연결 리스트 주소 핵심 아이디어ll1의 사이사이에 삽입하기 때문에 ll1->size..
[C언어] Linked List (1) - insertSortedLL 함수 구현하기
·
크래프톤 정글/Code 정글(C언어)
Linked List (1) - insertSortedLL 함수 구현하기정수 하나를 입력받아 오름차순으로 정렬된 연결 리스트에 삽입하는 함수주어진 요소 확인하기구조체LinkedList: (struct) 연결 리스트 구조체size: (int field) 연결 리스트 요소 갯수*head: (pointer field) 연결 리스트 첫 노드의 주소ListNode: (struct) 노드 구조체item: (int field) 노드의 값*next: (pointer field) 다음 노드의 주소insertSortedLL 함수의 매개 변수*ll: (pointer) 연결 리스트 주소item: (int) 삽입할 값 핵심 아이디어먼저 정렬된 순으로 삽입된 연결 리스트에서 cur(현재 노드의 주소)을 추적하며, 삽입할 값을 넣..
[C언어] 연결 리스트(Linked List) 구현 실습하기
·
크래프톤 정글/Code 정글(C언어)
연결 리스트(Linked List) 구현 실습하기처음 문제를 보면 연결 리스트의 노드 구조체와 기본 함수들(삽입, 삭제, 출력 등)은 이미 구현되어 있고, 각 문제마다 특정 함수만 직접 작성하도록 되어 있습니다. 즉, 우리가 연결 리스트의 기본 개념을 알고 있다고 가정한 채 문제가 주어지는 것이죠. 그래서 당장 연결 리스트 문제를 풀고 싶지만 뭐가 뭔지 몰라서 답답하고 막막하다면, 아래의 실습 과정을 통해 먼저 연결 리스트와 포인터에 대한 기초적인 이해를 쌓은 후 문제에 접근하는 방법을 추천합니다. 물론 아무것도 없는 상태에서 연결 리스트에 어떤 구조체가 필요하고, 어떤 매개 변수를 받는 함수가 필요한지 정의해보면 정말 좋겠지만, 굉장히 힘들 것 같습니다. 그래서 먼저 필요한 구조체, 함수에 대해 최소한..
[C언어] Linux에서 복잡한 명령어 없이 C 파일 실행하기
·
크래프톤 정글/Code 정글(C언어)
Linux에서 복잡한 명령어 없이 C 파일 실행하기Linux 터미널에서 C 파일을 실행하려면 터미널에서 gcc 파일명.c -o 실행파일명 && ./실행파일명 처럼 복잡한 명령어를 직접 입력해야 하는데요. 이 방식은 번거롭고, 파일명이 조금만 달라도 에러가 나는 등 실수하기가 쉽습니다. 하지만 Makefile 자동 생성 스크립트를 통해, 프로젝트 디렉토리의 모든 C 파일에 대해 자동화된 컴파일 환경을 구축할 수 있습니다. 한 번 설정만 해두면, 이후에는 make 파일명으로 손쉽게 컴파일하고 ./파일명으로 실행할 수 있어 더 이상 복잡한 명령어를 외우거나 반복할 필요가 없습니다. 이제 본격적으로 코딩과 문제 해결에만 집중하면 되는 것이죠. ※ 다만 Docker 기반의 VSCode Dev Container 환..
[C언어] Docker로 Windows에서 Linux 개발 환경 구축하기
·
크래프톤 정글/Code 정글(C언어)
Docker로 Windows에서 Linux 개발 환경 구축하기Windows에서 Linux 개발 환경을 직접 구축하려면 여러 설정과 도구 설치로 번거로운 경우가 많습니다. 하지만 Docker를 사용하면 누구나 손쉽게 동일한 환경을 만들 수 있어 협업이 훨씬 수월해지고, 라이브러리나 OS 버전 차이로 인한 문제도 줄일 수 있습니다. 이 글에서는 Docker를 활용해 Windows에서 Linux 개발 환경을 빠르게 구축하는 방법을 소개합니다. 만약 Docker 설치 없이 Windows에서 Linux 개발 환경을 구축하는 방법이 궁금하신 분들은 [여기]를 참고해주세요. 도커 설치1. Docker 공식 사이트에서 설치 파일 다운로드하기https://www.docker.com/ Docker: Accelerated..
[C언어] Docker 설치 없이 Windows에서 Linux 개발 환경 구축하기
·
크래프톤 정글/Code 정글(C언어)
Docker 설치 없이 Windows에서 Linux 개발 환경 구축하기이 포스트는 Windows 환경에서 Docker 없이 C 언어 실습 환경을 구축하고, .c 파일을 편집 및 실행하는 방법을 안내합니다. 일반적으로 Docker는 협업이나 배포에 유용하지만, RAM 부족이나 환경 제약 등으로 Docker 사용이 어려운 경우도 있습니다. 이 글에서는 그런 상황에서도 Windows에서 WSL과 Ubuntu만으로 C 언어 실습 환경을 구축하는 방법을 소개합니다. 만약 Docker를 이용해 Windows에서 Linux 개발 환경을 구축하는 방법이 궁금하신 분들은 [여기]를 참고해주세요. ※ 본 포스트는 Windows 11 또는 Windows 10 21H2 이상 환경에서 정상 동작하는 것을 기준으로 작성되었습니..