알고리즘-python

    [자료구조] [BJ1406] 에디터

    🚩 문제 설명 ⏱️ 시간 복잡도 ▪️ 문자열의 길이가 N으로 주어진다. ▪️ 명령어의 갯수는 M으로 주어진다. ▪️ 명령어의 갯수대로 문자열을 변환해야 하므로 시간 복잡도는 O (M) 이라고 할 수 있다. ▪️ 최악의 경우를 구해보자면 O(50만) 이라고 할 수 있다. ▪️ 이는 5 x 10^5 / 10^8 = 5 / 10^3 이므로 0.005초 라고 볼 수 있다. ◾ 한 줄로 된 간단한 에디터를 구현하는 문제 ◾ 마지막에 편집기에 나타나있는 문자열을 출력해야 한다. ◾ 영어 소문자만 편집 가능하다. ◾ 최대 60만 글자 까지 입력 가능. ◾ 커서가 존재할 수 있는 곳 (즉, 길이가 L인 문자열에서 커서의 위치는 L + 1 가지 경우가 있음.) 문장의 맨 앞 문장의 맨 뒤 문장 중간 임의의 곳 ◾ 편집기..

    [자료구조] [BJ9012] 괄호

    🚩 문제 설명 ⏱️ 시간 복잡도 ▪️ 테스트 케이스의 갯수 T가 주어진다. ▪️ 각 테스트 케이스 마다 VPS 인지 아닌지 확인 해야한다. ▪️ 괄호 문자열의 길이는 2 이상 50 이하 이다. ▪️ 시간 복잡도는 O ( T x 50 ) 이라고 볼 수 있다. ▪️ O ( N x N ) 이라고 볼 수도 있다. ◾ 괄호 문자열이란 (Parenthesis String, PS) '(' 와 ')' 로 구성되어 있는 문자열을 뜻한다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 Valid PS로 VPS 라고 부른다. ◾ 주어지는 PS 들이 VPS인지 아닌지 구분하는 프로그램을 작성하는 문제. ✅ 입출력 return ➡️ PS가 VPS인지 아닌지 YES or No로 반환한다. ✔️ 예제 1 6 (())()) (((..

    [자료구조] [BJ9093] 단어 뒤집기

    🚩 문제 설명 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net ⏱️ 시간 복잡도 ▪️ 테스트 케이스의 갯수인 T가 주어진다. ▪️ 단어의 길이는 최대 20이다. ▪️ 문장의 길이는 최대 1000이다. 즉 한 문장에 있는 단어의 수는 50개를 넘지않는다. ▪️ 즉 시간복잡도는 O( T x 50 ) 이라고 볼 수 있다. ▪️ 따라서 O( N x N ) 이라고 볼 수도 있음. ◾ 문장이 주어지고 문장의 각 단어를 뒤집어서 출력하는 프로그램을 ..

    [자료구조] [BJ10828] 스택

    🚩 문제 설명 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net ⏱️ 시간 복잡도 : O(N)으로 해결 가능하다. ◾ 스택을 구현하고 주어진 명령어에 따라 숫자를 반환하는 문제 ◾ 명령어 설명 push X : 정수 X를 스택에 넣는 연산이다. pop : 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size : 스택에 들어있는 정수의 개수를 출력한다. em..

    [PG42586] 기능개발

    https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 🚩 문제 설명 ◾ 배포되는 일수를 리턴하는 문제 ◾ 작업은 순서가 있고, 만약 전에 있는 작업이 끝나지 않으면 배포하지 못한다. ✅ 입출력 progresses : 먼저 배포 되어야하는 우선순위가 적힌 배열 speeds : 각 작업의 개발 속도 return ➡️ 배포되는 일수마다 몇 개의 작업이 배포되는가 progresses speeds return [93..

    [PG12901] 2016년

    https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 🚩 문제 설명 ◾ a와 b로 월과 일이 주어지면 2016년 내의 해당 날짜의 요일을 반환하는 문제 ◾ 2016년은 윤년인 것을 확인하자. ✅ 입출력 a: 요일을 구해야하는 월 b: 요일을 구해야하는 일 return ➡️ a월 b일의 요일을 반환한다. a b return 5 24 "TUE" 2 1 "MON" 📑 문제 풀이 w..