C 4

[C/C++] 연결 리스트(Linked List)의 순환 구조 찾기, 토끼와 거북이

이번 포스팅에서 알아볼 것은 연결 리스트(linked list)의 순환 구조 찾기입니다. 이를 알아보기 위해선 먼저 연결 리스트의 간단한 형태에 대해 정의하고자 합니다. struct LinkedList { struct LinkedList* next; int item; }; struct LinkedList* new_linked_list(int item) { struct LinkedList* res = new LinkedList; res->next = NULL; res->item = item; return res; } 연결 리스트의 구조는 위와 같이 자기 자신의 포인터를 포함한 구조체입니다. 가장 먼저 선언된 구조체가 머리(head)라고 불리며, 이후에 생성되는 구조체들은 이전에 나온 연결 리스트의 next..

프로그래밍 2021.12.11

[C/C++] Swap

프로그래밍을 공부하다 보면 기본적인 문법 이후에는 자료구조와 알고리즘을 익혀야 한다. 특히 알고리즘은 가장 처음 배우는 것은 정렬(sorting) 알고리즘들이다. 정렬 알고리즘은 주어진 배열 안에 무작위한 여러 숫자들이 존재 할 때, 이 숫자가 오름차순(또는 내림차순)으로 정렬 시키는 방법에 대한 것이다. 이를 위해서는 필연적으로 배열의 순서를 바꾸기 위한 swap함수가 사용 되게 된다. void swap(int &a, int &b) { int temp = a; a = b; b = temp; return; } swap함수의 가장 기초적인 형태는 위와 같이 하나의 변수(위에선 a)를 선택하여 임시변수temp에 저장하고, 그 변수에는 b의 값을 저장한다. 이후 b변수에 temp변수에 저장한 a의 값을 다시 ..

프로그래밍 2021.12.04

[C/C++] 백준 4948: 베르트랑 공준(소수)

베르트랑 공준https://www.acmicpc.net/problem/49484948번: 베르트랑 공준베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼www.acmicpc.net베르트랑 공준은 임의의 자연수 $n$에 대해서 $n$보다 크고 $2n$보다 작거나 같은 소수는 적어도 하나 존재한다는 내용이다. 예를 들어 $n=10$일 때, $10$보다 크고 $20$보다 작거나 같은 소수는 $11, 13, 17, 19$로 총 4개 존재한다. 백준의 4948번: 베르트랑 공준 문제는 임의의 자연수 $n$을 입력받았을 때, $n$ 보다 크고 $2n$보다 작거나 같은 소..

프로그래밍 2021.03.07

[C/C++] 백준 1011: Fly me to the Alpha Centauri(수열)

https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 온라인 코딩 문제 풀이 백준의 1011번 문제 Fly me to the Alpha Centauri 풀이 문제 요약 이전에 공간 이동한 거리가 k라고 하면, 다음에 공간 이동할 수 있는 거리는 k-1, k, k+1이다. 처음 공간 이동 할 수 있는 거리는 1이다. 마지막 도착 지점에 도달하기 직전에 움직일 수 있는 거리는 1이다. 이 때 공간 이동의 최소..

프로그래밍 2021.02.15
728x90
반응형