Notice
Recent Posts
Recent Comments
Link
전자공학 및 알고리즘
백준 1365 - 꼬인 전깃줄(C++) 본문
문제 링크입니다 https://www.acmicpc.net/problem/1365
1365번: 꼬인 전깃줄
첫 줄에 전봇대의 개수 N(1 ≤ N ≤ 100,000)이 주어지고, 이어서 N보다 작거나 같은 자연수가 N개 주어진다. i번째 줄에 입력되는 자연수는 길 왼쪽에 i번째 전봇대와 연결된 길 오른편의 전봇대가
www.acmicpc.net
https://junseok.tistory.com/73
백준 2353 - 반도체 설계(C++)
문제 링크입니다 https://www.acmicpc.net/problem/2352 2352번: 반도체 설계 첫째 줄에 정수 n(1 ≤ n ≤ 40,000)이 주어진다. 다음 줄에는 차례로 1번 포트와 연결되어야 하는 포트 번호, 2번 포트와 연결되어야
junseok.tistory.com
이 문제와 비슷한 문제였습니다! 자세한 것은 링크된 블로그를 참고해주세요.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#include <stack>
using namespace std;
int N;
int ele[100001];
vector<int> ele_line;
void binary_search(int x) {
int low = 0;
int high = ele_line.size() - 1;
int ret = 1000000;
while (low <= high) {
int mid = (low + high) / 2;
if (ele_line[mid] >= x) {
if (ret > mid) ret = mid;
high = mid - 1;
}
else low = mid + 1;
}
ele_line[ret] = x;
}
void solve() {
ele_line.push_back(ele[0]);
for (int i = 1; i < N; i++) {
if (ele_line.back() < ele[i]) {
ele_line.push_back(ele[i]);
}
else {
binary_search(ele[i]);
}
}
cout << N - ele_line.size();
}
int arr[101][101];
int n;
int c = 1;
int main() {
cin.tie(0);
cout.tie(0);
cin >> N;
for (int i = 0; i < N; i++) {
cin >> ele[i];
}
solve();
return 0;
}
질문 및 조언 댓글 남겨주세요!
'백준' 카테고리의 다른 글
백준 1039 - 교환(C++) (0) | 2021.09.02 |
---|---|
백준 14003 - 가장 긴 증가하는 부분 수열 5(C++) (0) | 2021.08.23 |
백준 2353 - 반도체 설계(C++) (0) | 2021.08.17 |
백준 3745 - 오름세(C++) (0) | 2021.08.17 |
백준 13418 - 학교 탐방하기(C++) (0) | 2021.08.16 |