6137 - 문자열 생성
2025. 2. 25. 15:46ㆍPS/백준
문제
https://www.acmicpc.net/problem/6137
느낀점
응용 투포인터 문제, 어렵지 않았다
풀이
#include <iostream>
#include <string>
using namespace std;
int main()
{
int N;
cin >> N;
string s = "";
string answer = "";
for (int i = 0; i < N; i++)
{
char c;
cin >> c;
s += c;
}
int left = 0, right = N - 1;
while (left <= right)
{
if (s[left] < s[right])
{
answer += s[left];
left++;
}
else if (s[left] > s[right])
{
answer += s[right];
right--;
}
else
{
answer += s[left];
int tempLeft = left + 1;
int tempRight = right - 1;
while (tempLeft < tempRight && s[tempLeft] == s[tempRight])
{
tempLeft++;
tempRight--;
}
if (s[tempLeft] < s[tempRight])
{
left++;
}
else
{
right--;
}
}
}
int iter = answer.size() / 80;
for (int i = 0; i < iter + 1; i++)
{
string temp = answer.substr(i * 80, 80);
cout << temp << "\n";
}
return 0;
}
'PS > 백준' 카테고리의 다른 글
1283 - 단축키 지정 (0) | 2025.02.26 |
---|---|
28066 - 타노스는 요세푸스가 밉다 (0) | 2025.02.25 |
3151 - 합이 0 (0) | 2025.02.25 |
24523 - 내 뒤에 나와 다른 수 (0) | 2025.02.24 |
1806 - 부분합 (0) | 2025.02.23 |