본문 바로가기

# 소쿠리 개발 공부방/코테 문제풀이

(12)
[BAEKJOON] [1753] 최단경로: PYTHON [1753] 최단경로 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net Input 첫째 줄에 정점의 개수 V와 간선의 개수 E (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) : 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정 둘째 줄에는 시작 정점의 번호 K (1 ≤ K ≤ V) 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w..
[BAEKJOON] [1935] 후위 표기식2: PYTHON [1935] 후위 표기식2 후위 표기식과 각 피연산자에 대응하는 값들이 주어져 있을 때, 그 식을 계산하는 프로그램을 작성 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net Input 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 둘째 줄에 후위 표기식 셋째 줄부터 N+2번째 줄까지는 각 피연산자에 대응하는 값 피연산자에 대응 하는 값은 100보다 작거나 같은 자연수 식의 결과와 중간 결과가 -20억보다 크거나 같고, 20억보다 작거나 같은 입력만 주어짐 Output 계산 결과를 소숫점 둘째 자리까..
[BAEKJOON] [4949] 균형잡힌 세상: PYTHON [4949] 균형잡힌 세상 문자열이 주어졌을 때 균형잡힌 문자열인지 아닌지를 판단 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net Input 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어짐 길이는 100글자보다 작거나 같음 입력의 종료조건으로 맨 마지막에 온점 하나(".") Output 각 줄마다 해당 문자열이 균형을 이루고 있으면 "yes"를, 아니면 "no"를 출력 ✨ Solve 1. 여는 괄호가 나오면 스택에 추가 2. 닫..
[BAEKJOON] [10845] 큐: PYTHON [10845] 큐 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net Input 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000) 둘째 줄부터 N개의 줄에는 명령이 하나씩 어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다 Output 출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력 ✨ Solve 배열을 통한 큐 구현 숫자를 담을 큰 배열 한개, head & tail 인덱스를 ..
[BAEKJOON] [10828] 스택: PYTHON [10828] 스택 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net Input 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000) 둘째 줄부터 N개의 줄에는 명령이 하나씩 어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다 Output 출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력 ✨ Solve 구현 배열 혹은 연결리스트를 통해 구현 할 수 있음 배열(리스트)을 통해 구..
[BAEKJOON] [2230] 수고르기: PYTHON [2230] 수고르기 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net Input 첫째 줄에 두 정수 N, M 둘째 줄에 다음 N개의 줄에는 차례로 A[1], A[2], …, A[N] 제한 1 ≤ N ≤ 100,000 0 ≤ M ≤ 2,000,000,000 0 ≤ |A[i]| ≤ 1,000,000,000 Output 첫째 줄에 M 이상이면서 가장 작은 차이를 출력 ✨ Solve 투포인터 수열 오름차순 정렬 answer 초기값 nt(2e9) 두 수의 차이가 M 이상이면서 제일 작은 수를 비교한..
[BAEKJOON] [1806] 부분합: PYTHON [1806] 부분합 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net Input 첫째 줄: N (10 ≤ N < 100,000), S (0 < S ≤ 100,000,000) 둘째 줄: 수열, 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수 Output 첫째 줄에 구하고자 하는 최소의 길이를 출력, 합을 만드는 것이 불가능 하다면 0 출력 ✨ Solve 투포인터 사용해서 sum 값이 S보다 작은 값들을 구한뒤, 길이 min()으로 비교 💻 Code ### 언어 python3,..
[BAEKJOON] [18870] 좌표 압축: PYTHON [18870] 좌표 압축 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net Input 첫째 줄에 N 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN Output Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력 ✨ Solve 입력값 중복제거, 정렬 후 새로운 인덱스 출력 💻 Code ### 언어 python3, 메모리 154800KB, 시간 1960ms n =..