반응형
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
문제 설명은 다음과 같다.
우선 띄어쓰기를 기준으로 문자열을 나눌 수 있는 지를 생각해보면 될 듯 하다.
본인은 istringstream을 사용해서 첫 번째와 두 번째 원소를 나누었지만, 생각해보니 그냥 cin으로 두 번 받아도 된다,,,
#include <sstream> 을 해주면, istringstream을 사용할 수 있고, 아래 코드처럼 문자열을 띄어쓰기 기준으로 나눠 줄 수 있다 :)
우선 본인이 사용한 알고리즘은 다음과 같다.
1. map<string, string> 을 선언한다. 이 때 key 값은 앞의 email 이 되고, Value 값은 password가 된다.
2. 테스트 셋에서 입력받는 email을 그냥 map에서 찾아주고, 그 value 값을 출력해주면 끝!
제출한 C/C++ 코드는 아래와 같다.
#include <iostream>
#include <algorithm>
#include <map>
#include <sstream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string info;
getline(cin, info);
istringstream ss(info);
int test_case;
int finding;
map<string,string>infolist;
ss >> test_case >> finding;
for (int i=0;i<test_case;i++){
string names;
getline(cin,names);
istringstream sss(names);
string email;
string password;
sss >> email >> password;
infolist[email] = password;
}
for (int i=0;i<finding;i++) {
string s;
cin >> s;
cout << infolist[s] << '\n';
}
return 0;
}
반응형
'백준 문제풀이 > 백준 Silver' 카테고리의 다른 글
BOJ 11047 - 동전 0 [C/C++] / Greedy Algorithm (0) | 2023.10.30 |
---|---|
BOJ 11399 - ATM [C++] / Greedy Algorithm (1) | 2023.10.30 |
BOJ 18110 - Solved.ac [C++] (1) | 2023.10.30 |
BOJ 1181 - 단어 정렬 [Python] (0) | 2023.10.30 |
BOJ 1676 - 팩토리얼 0의 개수 [Python] (0) | 2023.10.30 |