목록구현 (6)
tony9402
1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net 이 문제는 주어진 문자열 순으로 구현을 하면 되는 문제이다. 주어지는 문자열의 최대 길이는 50으로 101x101 크기의 배열을 만들어 (50, 50)에서 출발하여 주어진 문자열 대로 이동하고 방문한 점을 .으로 방문하지 않은 점을 #으로 출력하면 된다. 미로를 출력하는 범위는 .을 포함하는 가장 작은 직사각형의 크기 및 위치를 관리하면 된다. import sys def input(): return sys.stdin.readline().rstrip() N = ..
C++ 환경에서 코딩을 하면 STL이라는 것을 사용할 수 있다. STL에는 queue가 기본적으로 만들어져있다. 또한 이 queue을 상황에 따라 편하게 선언을 할 수 있다.STL을 이용하여 n을 입력받고 1부터 n까지의 값을 queue에 넣고 queue에 있던 모든 값을 출력해보는 간단한 소스코드를 작성해보자. 12345678910111213141516171819202122232425#include#include using namespace std; queue q; int main(){ int n; cin >> n; //scanf("%d",&n); for (int i = 1; i
오늘 풀 문제는 바로 단지번호붙이기이다. 이 문제에 대해 이미 올렸었는데 이 글은 여기와 또 다른 소스코드가 있다. 거기에서도 C로 queue를 구현했지만 너무 못짰다............ 거기는 C로 구현한거 빼고 보는걸 추천한다. 설명은 거기서 했었으니 바로 소스코드만 올리겠다. (간단한 설명을 보고 싶은 사람은 여기에 가서 읽고 오면 된다.) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031..
앞에 글에선 큐가 작동하는 과정과 간단한 소스코드를 작성하였다. 그 소스코드를 이용하여 어떤 알고리즘을 만들때 각 큐에 대한 함수를 엄청 많이 만들어야 한다. 이번 글에선 이를 한번 개선시켜보자. 먼저 Queue *head와 Queue *tail을 하나의 구조체로 묶고 size라는 변수까지 추가하면 깔끔해지겠다. 1. 새로운 구조체 만들기 12345678typedef struct{ Queue *head; Queue *tail; int size = 0;}qq; typedef qq* Q;cs 2. init() 함수 큐를 인자로 받고 그 큐를 초기화하는 함수로 바꾸면 된다. 12345678void init(Q q){ q->head = (Queue*)malloc(sizeof(Queue)); q->head->ne..
자료구조 Queue를 를 이용하여 구조체 + 포인터를 이용해서 간단히 구현해보자. Queue에 대한 함수를 간단하게 4개(push, front, pop, empty)만 만들어 사용하겠다. 간단하게 구현하는 과정을 아주 자세하게 그림을 밑에 올려놓았다. (애니메이션으로 일일이 다 만들었는데 혹시 쉬운 방법을 아는 사람은 댓글을 남겨주시면 감사하겠습니다.) 1. Queue에 push하는 과정 2. Queue에서 pop하는 과정 이를 C로 구현한 소스는 아래와 같다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include#include str..
SCCC 스터디 2일차 시간복잡도에 대해 간단히 이해하고 어떤 표기법을 쓰는지 알고 나머지 시간은 구현 time~ 1억번의 연산을 수행할 때 걸리는 시간을 약 1초가 걸린다고 생각하면 된다. 단순 연결 리스트 - 조회, 삽입, 삭제 - O(N) 정렬 - 선택, 버블, 삽입 - O() - 퀵정렬 - O() -> 평균은 O(NlogN) - 힙, 머지. etc - O(NlogN) 스택, 큐 - 삽입, 삭제 O(1) 이분 탐색 - 탐색 - O(NlogN) 힙 - 삽입, 삭제 O(logN) 1. 터널의 입구와 출구 - ●○○○○2. 도깨비말 - ●◐○○○3. 크로스워드 만들기 - ●○○○○4. 그림 비교 - ●◐○○○5. 지뢰 찾기 - ●○○○○6. 비밀번호 발음하기 - ●●○○○7. 고장난 시계 - ●○○○○8..