알고리즘-python
[자료구조(연습)] [BJ17413] 단어 뒤집기 2
🚩 문제 설명 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net ⏱️ 시간 복잡도 ▪ 주어진 문자열의 길이는 S이다. ▪ 문자열 하나하나 당 따져보므로 따라서 O(S) 라고 할 수 있다. ◾ 문장들이 주어질 때 각 문장의 단어만을 거꾸로 뒤집어 출력하는 문제 ◾ 몇가지의 규칙을 지켜야 한다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다. 문자열의 시작과..
[자료구조] [BJ10866] 덱
🚩 문제 설명 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net ⏱️ 시간 복잡도 ▪ 총 명령어의 수는 N개 이다. ▪ 시간복잡도는 대략적으로 O(N)이라고 할 수 있다. ◾ 스택이나 큐 문제 처럼 덱을 구현해서 명령을 처리하여 결과값을 출력하는 문제 ◾ 명령어 8가지 push_front X : 정수 X를 덱의 앞에 넣는다. push_back X : 정수 X를 덱의 뒤에 넣는다. pop_front : 덱의 가장 앞에 있는 수를 빼..
[PG42889] 실패율
🚩 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr ⏱️ 시간 복잡도 ▪ 전체 스테이지의 수는 N개 이다. ▪ 전체 스테이지의 수 만큼 번호마다의 실패율을 확인한다. ▪ 따라서 대략적인 시간복잡도는 O(N)이라고 할 수 있다. ◾ 실패율 = 스테이지 아직 클리어하지 못한 플레이어의 수 / 스테이지 도달한 플레이어 수 ◾ 각 스테이지의 실패율을 구해서 실패율이 높은 스테이지 순으로 배열에 담아 출력하..
[자료구조] [BJ1158] 요세푸스 문제
🚩 문제 설명 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net ⏱️ 시간 복잡도 ▪ 총 N명의 사람을 제거해야한다. ▪ 시간 복잡도는 O(N)이라고 볼 수 있다. ◾ 원을 그리고 있는 사람들을 스텝 순서 대로 없애는 문제 ◾ 제거되는 값을 반환한다. ✅ 입출력 N: 원을 이루고 있는 사람의 수 K: 제거되는 스텝의 수 return ➡️ 제거되는 사람의 인덱스 수를 순서대로 반환 ✔️ 예시 📑 문제 풀이 with 파이썬 (Python) import sys from collections import deque N, K = map(int, ..
[자료구조] [BJ10845] 큐
🚩 문제 설명 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net ⏱️ 시간 복잡도 ▪️ 명령의 수가 N개 주어진다. ▪️ 명령어의 갯수는 총 6가지 이다. ▪️ 데이터에 대한 접근은 O(N)이라고 할 수 있다. ▪️ 데이터 접근은 back이나 front ▪️ 따라서 시간복잡도는 대략적으로 O(2 x N x N)이라고 할 수 있다. ▪️ 2 x 10^10 / 10^8 = 2 x 10^2 = 200s ▪️ 이러면 시간초과가 나온다. ..
[TC0404] [구현] 게임 개발
🚩 문제 설명 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 x 1 크기의 정사각형으로 이뤄진 N x M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 높은 메뉴얼은 이러하다. 1. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향 (반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 2. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향..