문제 풀이/문제 풀이(BOJ)
문제: [Silver V] 22232번 - 가희와 파일 탐색기
풀뿌리
2024. 8. 1. 02:41
[문제 위치]
https://www.acmicpc.net/problem/22232
[문제 풀이]
이 문제는 가희와 파일 탐색기를 구현하는 문제입니다. 문제의 주요 내용은 파일 및 폴더를 이름순, 확장자순으로 정렬하는 것입니다. 이때, 각 파일의 이름과 확장자는 입력된 문자열에서 마지막 "."을 기준으로 나누어집니다. 여기서 사용한 알고리즘의 개요는 다음과 같습니다:
1. 파일 또는 폴더명을 입력받습니다.
2. 이름과 확장자를 분리하여 각각 리스트에 저장합니다.
3. 확장자와 이름을 기준으로 정렬합니다.
4. 정렬된 결과를 출력합니다.
아래가 그 코드입니다:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct File {
string name;
string extension;
};
bool compare(File a, File b) {
if (a.extension == b.extension) return a.name < b.name;
return a.extension < b.extension;
}
int main() {
int N;
cin >> N;
vector files(N);
for (int i = 0; i < N; ++i) {
string input;
cin >> input;
size_t pos = input.rfind('.');
files[i].name = input.substr(0, pos);
files[i].extension = input.substr(pos + 1);
}
sort(files.begin(), files.end(), compare);
for (const auto &file : files) {
cout << file.name << '.' << file.extension << '\n';
}
return 0;
}