본문 바로가기

반응형

PS

(326)
[BOJ] 백준 10866 덱 (Swift) 문제 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 Deque 자료구조를 사용해서 풀 수 있습니다. Deque 자료구조를 구현한 후, 명령에 맞게 처리해주면 됩니다. Deque 자료구조에 대해 잘 모른다면, 이 포스팅을 참고하시면 도움이 될 것입니다. https://dev-mandos.tistory.com/195 [자료구조] Deque에 대해 알아보고 구현해보기 (Swift) Deque란? Deque 자료구조는 Queue..
[BOJ] 백준 1966 프린터 큐 (Swift) 문제 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 풀이 Queue 자료구조를 사용하여 풀 수 있습니다. 앞에 있는 문서를 삭제연산을 하고, Queue의 요소들 중 중요도가 가장 높은 문서라면 그대로 삭제해줍니다. 삭제를 해줄 때, 몇개가 삭제되었는지 수를 세주어서 몇 번째로 삭제되었는지 확인할 수 있습니다. Queue의 요소들 중 중요도가 더 높은 문서가 있다면, Queue에 다시 삽입시킨다면 자연스럽게 맨 뒤에 위치하게 됩니다. 중요도가 가장..
[BOJ] 백준 11866 요세푸스 문제 0 (Swift) 문제 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 풀이 이 문제는 Queue를 사용해서 풀 수도 있고, index를 순회하면서 풀 수도 있습니다. Queue를 사용해서 풀이하면, K-1번 만큼 Queue에서 삭제한 요소를 Queue에 삽입시켜주고 K번째가 될 때, Queue에서 삭제연산을 해주면 K번째 요소를 제거할 수 있습니다. 이 동작을 queue가 빌 때 까지 반복해주면 됩니다. index로 접근은 어떻게 할까요? 초기값은 0번째 인덱스를 가리키고 있고, index에 k - 1을 더해준 위치의 요소를 제거해주면 됩니다...
[BOJ] 백준 2164 카드 2 (Swift) 문제 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 풀이 Queue 자료구조를 사용하여 풀이할 수 있습니다. 우선 제일 위에 있는 카드를 바닥에 버리는 행위를 Queue의 삭제 연산으로 볼 수 있습니다. 그렇다면 제일 위에 있는 카드를 맨 밑으로 옮기는 행위를 Queue에서 삭제한 요소를 Queue에 삽입하는 것으로 볼 수 있겠죠? Queue의 크기가 1이 될 때까지, 반복문을 실행해주고 Queue의 마지막 요소를 출력해주면 됩니다. 소스코드..
[BOJ] 백준 18258 큐 2 (Swift) 문제 https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 이 문제는 Queue 자료구조를 사용하면 쉽게 풀리는 것이 맞는데.. Swift에서는 입력과 출력이 느려서 다른분들의 도움을 받아서 풀었던 문제입니다. Queue 자료구조에 대해 모르신다면 이 글을 읽어보시면 도움이 되실 것입니다. https://dev-mandos.tistory.com/190 [자료구조] Queue에 대해 알아보고 구현해보기 (Swift) Qu..
[BOJ] 백준 1874 스택 수열 (Swift) 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 Stack을 사용해서 풀 수 있는 문제입니다. 1부터 n까지의 수를 Stack에 넣어주고, 뽑으면서 수열을 만들게 됩니다. 예를들어 초기 입력에서 4가 주어졌다면 1, 2, 3, 4 를 Stack에 넣고 뽑아주면 4를 뽑을 수 있습니다. 그 이후로 Stack에 넣을 수 있는 수는 5, 6, 7 ... 일 ..
[BOJ] 백준 4949 균형잡힌 세상 (Swift) 문제 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 풀이 Stack 자료구조를 사용해서 풀이할 수 있습니다. 먼저 문자열을 하나씩 살펴보면서 "[", "]", "(", ")" 가 아니라면, 살펴보지 않았습니다. 문자열이 괄호이고 Stack의 Top이 "[" 이고, 현재 문자열이 "]"라면 "[]"으로 짝이 맞게 되므로 Stack의 삭제연산을 해주었습니다. 마찬가지도 소괄호도 같은 역할을 해주었습니다. 둘다 아니라면 스택에..
[BOJ] 백준 9012 괄호 (Swift) 문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 이 문제는 Stack를 사용하는 Well-Known 문제입니다. Stack이 비어있다면, 어떤 괄호이든지 상관없이 Stack에 삽입해주었습니다. Stack이 비어있지 않고, Stack의 top이 "(" 이고, 현재 문자열이 ")"라면 "()"로 올바른 괄호가 되기 때문에 Stack의 마지막 요소 "("를 삭제 해주었습니다. Stack이 비어있지 않고, 들어..

반응형