mang_dev
맹꽁거리는 개발자
mang_dev
전체 방문자
오늘
어제
  • 분류 전체보기 (185)
    • Frontend (2)
      • Next.js (1)
    • Backend (3)
      • GraphQL (2)
    • Book (1)
      • 기타 (1)
    • Old (177)
      • 알고리즘 퍼즐 (1)
      • 백준 (131)
      • 프로그래머스 (0)
      • Codility (15)
      • LeetCode (7)
      • Codewars (1)
      • Codeforces (0)
      • Django (6)
      • React (2)
      • Naver Map Api (3)
      • Web UI (4)
      • Introduction to Cloud (2)
hELLO · Designed By 정상우.
mang_dev

맹꽁거리는 개발자

백준 11656번 접미사 배열 // C++
Old/백준

백준 11656번 접미사 배열 // C++

2020. 5. 13. 22:27

문제

접미사 배열

접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.

baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.

문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.

출력

첫째 줄부터 S의 접미사를 사전순으로 한 줄에 하나씩 출력한다.


풀이

접미사를 뽑아내기 위하여, 문자열끼리의 더하기 연산자를 사용하였다.

뒤에서부터 하나씩 뽑아내야하기 때문에, input[i] + temp 와 같이 연산을 하였다.

다 풀고 나서 든 생각인데, 그냥 문자열의 제일 앞 부터 하나씩 지우면서 벡터에 추가했어도 됐을거 같다...


코드

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    string input;

    cin >> input;

    vector<string> v;

    string temp = "";

    for (int i = input.length() - 1; i >= 0; i--) {
        temp = input[i] + temp;
        v.push_back(temp);
    }

    sort(v.begin(), v.end());

    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << "\n";
    }

    return 0;
}
저작자표시 (새창열림)

'Old > 백준' 카테고리의 다른 글

백준 1408번 24 // C++  (2) 2020.07.15
백준 16561번 3의 배수 // C++  (0) 2020.07.15
백준 2110번 공유기 설치 // C++  (0) 2020.05.12
백준 2485번 가로수 // C++  (0) 2020.04.22
백준 9663번 N-Queen // C++  (0) 2020.04.22
    'Old/백준' 카테고리의 다른 글
    • 백준 1408번 24 // C++
    • 백준 16561번 3의 배수 // C++
    • 백준 2110번 공유기 설치 // C++
    • 백준 2485번 가로수 // C++
    mang_dev
    mang_dev

    티스토리툴바