[テストコード]白準17219号パスワード-C++を見つけた
2658 ワード
問題を解く
これは
1)初めてベクトルで解く.ベクトルはタイムアウトしやすい.したがって,配列に変更して解き直す.
2)coutを使用するとタイムアウトになります.したがって、次のコードを追加します.
cin.tie(NULL);
ios::sync_with_stdio(false);
C++コード
#include<iostream>
#include<stdio.h>
#include <string>
#include<algorithm>
using namespace std;
//이진탐색으로
string find_pwd(string s, int index, pair<string, string>* s_p) {
int l = 0;
int mid = index / 2;
int r = index;
while (l<=mid && mid <=r)
{
if (s.compare(s_p[mid].first) == 0) {
return s_p[mid].second;
}
else if (s.compare(s_p[mid].first) < 0) {
r = mid - 1;
mid = (l + r) / 2;
}
else {
l = mid + 1;
mid = (l + r) / 2;
}
}
}
int main() {
cin.tie(NULL);
ios::sync_with_stdio(false);
int N; //전체 사이트 주소의 수
int M; //찾으려는 사이트 주소의 수
cin >> N >> M;
pair<string, string> *site_pwd = new pair<string,string> [N];
//사이트, 비밀번호 입력 받기
for (int i = 0; i < N; i++) {
string s, p;
cin >> s >> p;
site_pwd[i] = make_pair(s,p);
}
sort(site_pwd, site_pwd+N);
//찾고자하는 사이트 입력받기
for (int i = 0; i < M; i++) {
string f;
cin >> f;
cout << find_pwd(f, N, site_pwd) << "\n";
}
return 0;
}
Reference
この問題について([テストコード]白準17219号パスワード-C++を見つけた), 我々は、より多くの情報をここで見つけました https://velog.io/@secdoc/코딩테스트백준17219번-비밀번호-찾기-Cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol