알고리즘

알고리즘/C, C++

백준 11047번 동전 0

https://www.acmicpc.net/problem/11047> N >> K; int values[10]; for(int i = 0; i > values[i]; } for(int i = N - 1; i >= 0; i--) { while(K >= values[i]) { K -= values[i]; cnt++; } } cout

알고리즘/C, C++

백준 7569 토마토

https://www.acmicpc.net/problem/7569 > m >> n >> h; bool all_one; for (int z = 0; z > d[i][j][z]; // 0이 입력됐는지 확인 if (d[i][j][z] == 0) all_one = true; if (d[i][j][z] == 1) { q.push(make_tuple(i, j, z)); visited[i][j][z] = true; } } } } // 0의 입력이 없으면 if (!all_one) { printf("0"); return 0; } while (!q.empty()) { int x, y, ..

알고리즘/C, C++

포인터

c, c++ 포인터 포인터란? 특정 메모리의 위치를 가리키도록 하는 변수를 포인터(pointer)라고 합니다. 즉 주소를 알아야 사용할 수 있습니다. 우리는 지금까지 변수를 선언하면 그 변수가 메모리에 기록된다고 생각하지 않고, 그 선언한 이름과 값만 생각을 하고 사용을 했습니다. 하지만 실제로 int a; 이라고 선언할 때 '메모리 x132453647(임의)에 int형, 변수 이름 a, 초기화되지 않은 상태로 사용한다'라고 하는 것과 같습니다. 이때 a = 10; 이라고 입력하면 '메모리 x132453647에 있는 값을 10으로 바꿔주는 것'과 같습니다. 그래서 우리가 포인터를 사용한다는 것은 '이름이 a'인 변수를 찾는 것이 아닌, '메모리 x132453647(임의)'를 찾으라는 것입니다. 주소도 알..

알고리즘/자료구조

백준 1158번 요세푸스

백준 1158번 문제 : https://www.acmicpc.net/problem/1158 [알고리즘] - 큐(queue) 에서 배운 큐를 활용하여 문제를 해결할 것입니다! 문제 해결 전산학이나 수학에서 요세푸스 문제(Josephus problem) 혹은 요세푸스 순열(Josephus permutation)은 다음과 같이 정의한다. n과 k가 자연수이고, k

알고리즘/자료구조

큐(queue)

백준 10845번 큐 : https://www.acmicpc.net/problem/10845 큐(queue)란? 큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 말한다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과 정반대의 개념이다. 큐의 기능 여러 가지가 있지만 많이 사용되는 것들이다. empty() : 큐가 비어있는지 확인합니다. front() : 제일 최상위 데이터를 반환합니다. pop() : 큐의 front 데이터를 삭제합니다. push(item) : item을 큐에 추가합니다. size() : 현재 큐의 사이즈를 반환합니다. swap(q1, q2) : 두 큐의 내용을 바꿉니다. b..

알고리즘/자료구조

백준 9012번 괄호

백준 9012번 문제 : https://www.acmicpc.net/problem/9012 [알고리즘] - 스택(Stack)에서 배운 스택을 활용하여 문제를 해결할 것입니다! 문제 해결 문제를 읽어 보았을 때 괄호 문자열(Perenthesis String, PS)은 '(', ')'만으로 구성되어 있는 문자열을 말한다고 합니다. 그중 괄호의 모양이 올바른 구성으로 문자열이 입력되어 있는 것은 Valid PS, VPS라고 부른다고 하네요. 예를 들면 "()" 이런 식으로 입력되면 VPS이고, "(()())" 이런 식으로 입력되면 VPS이고, "(()" 이런 식으로 입력되면 VPS 가 아닌 거이다. 입력된 괄호 문자열이 올바른 괄호 문자열(VPS)이면 "YES"를 아니면 "NO"를 한 줄에 하나씩 출력하면 됩..

알고리즘/자료구조

스택(Stack)

백준 10828번 스택 문제 : https://www.acmicpc.net/problem/10828 스택이란? 스택(Stack)은 제한적으로 접근할 수 있는 나열 구조이다. 한쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조이다. 스택의 기능 여러 가지가 있지만 가장 많이 사용하는 것들이다. pop(): 스택에서 가장 위에 있는 항목을 제거한다. push(input): input이란 변수를 스택의 가장 윗부분에 추가한다. size(): 스택에 들어가 있는 크기를 알려준다. top(): 스택의 가장 윗 부분를 반환해준다.(삭제하지 않는다) empty(): 스택이 비어 있을때에 true를 반환해준다. 왜 스택을 사용할까? 문제의 종류에 따라 배열보다 스택에 데..

나봄하랑
'알고리즘' 카테고리의 글 목록