Algorithm
-
Baekjoon_17413_단어뒤집기2Algorithm/_Baekjoon 2023. 6. 6. 19:10
문제주소: https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net Python Python에서는 string과 list를 사용하여 해결하였다. import sys def main(): words: list = list(sys.stdin.readline().rstrip()) # 입력 string 선언 cur_word: list = [] n_start: int = 0 count: int = 0 while(count < le..
-
Baekjoon_10866_덱Algorithm/_Baekjoon 2023. 5. 24. 19:00
문제주소: https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이번에는 deque를 활용하는 문제다. 위의 조건들을 가진 코드는 다음과 같다. Python import sys from collections import deque def main(): num_repeat: int = int(sys.stdin.readline()) cmd: str number: int my_deque: deque[int] = deque() for i i..
-
Baekjoon_1158_요세푸스 문제Algorithm/_Baekjoon 2023. 5. 24. 17:29
문제주소: https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 요세푸스 문제에 대한 설명이 문제에도 있지만, 다음 링크를 보시면 조금 더 이해하기 쉬울 수 있습니다. 요세푸스: https://ko.wikipedia.org/wiki/%EC%9A%94%EC%84%B8%ED%91%B8%EC%8A%A4_%EB%AC%B8%EC%A0%9C 요세푸스 문제 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 전산학이나 수학에서 요세푸스 문제(Josephus problem) 혹은 요세푸스 순열(Josephus permutation)은 다..
-
Baekjoon_10845_큐Algorithm/_Baekjoon 2023. 5. 18. 22:27
문제주소: https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이번 문제는 스택과 비슷하며 크게 어렵지 않습니다. Python list를 사용해도 크게 상관이 없지만, deque를 사용해보도록 하겠습니다. import sys from collections import deque def main(): num_repeat: int = int(sys.stdin.readline()) my_deque: deque = deque() for _..
-
Baekjoon_1406_에디터Algorithm/_Baekjoon 2023. 5. 17. 22:17
문제주소: https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 에디터 문제는 다음과 같습니다. 보기에는 크게 어려워 보이지 않아서 다음과 같이 풀었는데 실행은 되지만 시간초과가 됩니다. 아마 제가 리스트에서 사용한 insert()에서 O(n)만큼의 시간을 소요하기 때문에 0.3초 제한에 걸리는 것 같습니다. Python import sys def main(): my_string_list: list = list(sys.stdin.readline().r..
-
Baekjoon_1874_스택 수열Algorithm/_Baekjoon 2023. 5. 15. 16:31
문제주소: 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 스택 수열의 문제는 다음과 같습니다. 1. LIFO, FIFO 문제에서 LIFO(Last In First Out)가 언급되며 FIFO(First In First Out)도 함께 언급됩니다. (1) LIFO (Last in First Out) 후입선출 대표적으로 stack이 있으며 리스트의 한쪽 끝에서 데이..
-
Baekjoon_9012_괄호Algorithm/_Baekjoon 2023. 5. 14. 18:51
문제주소: https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 괄호 문제는 다음과 같습니다. 문제를 읽어보면 괄호가 올바르게 구성이 되었는지 확인하는 문제입니다. 저는 문제를 다음과 같이 풀었습니다. Python import sys num_repeat: int = int(sys.stdin.readline()) # 반복할 수 입력 for i in range(num_repeat): check_result: int = 0 ..
-
Baekjoon_9093_단어 뒤집기Algorithm/_Baekjoon 2023. 5. 14. 18:40
문제 주소: https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 단어 뒤집기의 문제는 다음과 같습니다. 해당 문제의 경우 주어진 문장의 각 단어들을 뒤집어야 합니다. Python 저는 이 문제를 해결하기 위해서 이중 for문을 사용하였으며 코드는 다음과 같습니다. repeat_num = int(input()) # 입력할 문장의 갯수 reverse_word = [] # 빈 list를 하나 생성 for i in range(repeat_num):..