반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 산토리 하이볼
- 112일선
- 448일선
- 리팩터링 4장
- 2023 게이밍 인 구글 클라우드
- 스포일러 주의
- URP
- 상계9동
- 리팩터링 3장
- shader
- 2023 Gaming
- 이득우의 언리얼 프로그래밍1
- 언리얼 5
- 공부
- 224일선
- 작계훈련
- 주식
- 2023 구글 클라우드
- unity
- 리팩터링
- JavaScript
- 전주비빔 라이스 버거
- 이득우의 언리얼 프로그래밍 1
- 2023 게이밍
- 1일차
- 스즈메의 문단속
- GenAI
- 구글 컨퍼런스
- 주식단테
- 언리얼5
Archives
- Today
- Total
개발 이야기 안하는 개발자
알고리즘 공부 (2024_11_13) 본문
반응형
백준 2812 : 크게 만들기
값을 받아서 Stack으로 전에 있던 값을 비교하는 방식으로 문제를 풀었다.
놓친부분이 있었는데, K가 남는 경우가 있을 수도 있어서 K가 남으면 끝에서부터 빼기로 했다.
#include <stdio.h>
#include <algorithm>
#include <queue>
#include <vector>
#include <iostream>
#include <fstream>
#include <stack>
#include <math.h>
#include <string>
#include <climits>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
string Num;
int N;
int K;
cin >> N >> K;
cin >> Num;
stack<int> S;
for (int i = 0; i < N; i++)
{
while (K > 0 && !S.empty() && S.top() < Num[i] - '0')
{
K--;
S.pop();
}
S.push(Num[i] - '0');
}
while (K > 0)
{
K--;
S.pop();
}
int Size = S.size();
vector<int> V(Size);
for (int i = Size - 1; i >= 0; i--)
{
V[i] = S.top();
S.pop();
}
for (int i = 0; i < Size; i++)
{
cout << V[i];
}
return 0;
}
백준 10800 : 컬러볼
이건 문제도 다 이해하고 알고리즘까지 공책에 적었는데, 코드 짜다 보니까 꼬여서 길을 잃었던 문제.
똑같은 방식으로 푼 코드가 있길래 긁어옴
https://tnwlswkd.tistory.com/100
백준 2891 : 카약과 강풍
이건 그냥 문제 그대로 풀었다.
조건이 안까다롭길래 그냥 ㅇㅇ
#include <stdio.h>
#include <algorithm>
#include <queue>
#include <vector>
#include <iostream>
#include <fstream>
#include <stack>
#include <math.h>
#include <string>
#include <climits>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int N, S, R;
int ans = 0;
cin >> N >> S >> R;
vector<int> V(N + 2);
for (int i = 0; i < S; i++)
{
int a = 0;
cin >> a;
V[a] = -1;
}
for (int i = 0; i < R; i++)
{
int a = 0;
cin >> a;
if (V[a] == -1)
{
V[a] = 0;
}
else
{
V[a] = 1;
}
}
for (int i = 1; i < N + 1; i++)
{
if (V[i] == -1)
{
if (V[i - 1] == 1)
{
V[i - 1] = 0;
V[i] = 0;
}
else if (V[i + 1] == 1)
{
V[i + 1] = 0;
V[i] = 0;
}
else
{
ans++;
}
}
}
cout << ans;
return 0;
}
반응형
'개발' 카테고리의 다른 글
알고리즘 공부 (2024_11_15) (1) | 2024.11.15 |
---|---|
알고리즘 공부 (2024_11_12) (1) | 2024.11.12 |
알고리즘 공부 (2024_11_8) (3) | 2024.11.08 |
알고리즘 공부 (2024_10_31) (1) | 2024.10.31 |
알고리즘 공부 (2024_10_30) (0) | 2024.10.30 |