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을 이용해 개수를 세는 방법을 사용했다
'Programing > 백준, 프로그래머스(C++)' 카테고리의 다른 글
[C++][백준 20437] 문자열 게임 2 (0) | 2025.01.14 |
---|---|
[C++][백준 1522] 문자열 교환 (0) | 2025.01.13 |
[C++][백준 1874] 스택 수열 (0) | 2025.01.13 |
[C++][백준 1654] 랜선 자르기 (0) | 2025.01.13 |
[C++][백준 2108] 통계학 (0) | 2025.01.12 |