Programing/백준, 프로그래머스(C++)
[C++][백준 20291] 파일 정리
hye3193
2025. 1. 13. 19:14
https://www.acmicpc.net/problem/20291
제출 코드
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
map<string, int> m;
while(n--)
{
string str;
cin >> str;
m[str.substr(str.find('.') + 1)]++;
}
for (auto res : m)
cout << res.first << " " << res.second << '\n';
}
C++에서 문자열을 특정 기준으로 나눌 때 substr(시작 위치, 길이) 함수를 사용할 수 있다
* 길이: 시작 위치부터 몇 개까지를 자를 건지( = 잘라진 문자열의 길이)
만약 길이를 생략하고 인자를 하나만 전달하면 시작 위치부터 마지막 위치까지를 잘라서 반환한다
find(문자)함수로 '.'의 위치를 찾고 그대로 자르면 .txt와 같은 형태로 잘리기 때문에 +1을 해주어 txt와 같은 상태로 잘리도록 하였다
map을 이용해 개수를 세는 방법을 사용했다