Skip to content

Commit

Permalink
[Gold V] Title: ZOAC, Time: 0 ms, Memory: 2156 KB -BaekjoonHub
Browse files Browse the repository at this point in the history
  • Loading branch information
belowyoon committed Feb 8, 2024
1 parent 62ab618 commit 32be780
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 0 deletions.
36 changes: 36 additions & 0 deletions 백준/Gold/16719. ZOAC/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# [Gold V] ZOAC - 16719

[문제 링크](https://www.acmicpc.net/problem/16719)

### 성능 요약

메모리: 2156 KB, 시간: 0 ms

### 분류

구현, 재귀, 문자열

### 제출 일자

2024년 2월 8일 16:47:45

### 문제 설명

<p>2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다.</p>

<p>앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다!</p>

<p>규칙은 이러하다. 아직 보여주지 않은 문자 중 추가했을 때의 문자열이 사전 순으로 가장 앞에 오도록 하는 문자를 보여주는 것이다.</p>

<p>예를 들어 ZOAC를 보여주고 싶다면, A → AC → OAC → ZOAC 순으로 보여주면 된다.</p>

<p>바쁜 성우를 위하여 이 규칙대로 출력해주는 프로그램을 작성하시오.</p>

### 입력

<p>첫 번째 줄에 알파벳 대문자로 구성된 문자열이 주어진다. 문자열의 길이는 최대 100자이다.</p>

### 출력

<p>규칙에 맞게 순서대로 문자열을 출력한다.</p>

53 changes: 53 additions & 0 deletions 백준/Gold/16719. ZOAC/ZOAC.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;

#define INF 1000000000

vector<char> res;
string str;

void printRes() {
for (int i = 0; i < res.size(); i++) {
if (res[i] != ' ') {
cout << res[i];
}
}
cout << '\n';
}

void getChar(int s) {
priority_queue<pair<char, int>, vector<pair<char, int>>, greater<pair<char, int>>> pq;
for (int i = s; i < str.size(); i++) {
if (res[i] == ' ') {
pq.push({str[i], i});
}
}
while(!pq.empty()) {
char temp = pq.top().first;
char index = pq.top().second;
pq.pop();
if (res[index] != ' ') {
continue;
}
res[index] = temp;
printRes();
getChar(index + 1);
}
return;
}

int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
//freopen("input.txt", "r", stdin);

getline(cin, str);
res.assign(str.size(),' ');

getChar(0);
return 0;
}

0 comments on commit 32be780

Please sign in to comment.