https://www.acmicpc.net/problem/17219

[필자 사고]
간단한 구현 문제다.
필자는 map 자료구조를 이용하여 쉽게 url에 해당하는 비밀번호를 찾을 수 있도록 문제를 해결했다.
아래는 자세한 코드 해설이다.
[코드 해설]
Input 함수
- 입력 처리 및 저장 역할을 합니다.
- 정수 N, M을 입력받음.
- N: 저장할 사이트의 개수.
- M: 찾을 사이트의 개수.
- for문으로 N번 반복하며 사이트 주소(url)와 비밀번호(password)를 입력받음.
- myMap[url] = password; 구문을 통해 map 컨테이너에 저장.
- map은 key(여기서는 url)를 기준으로 자동 정렬되고,
- 같은 url이 다시 들어오면 비밀번호가 덮어쓰기 됨.
Game_Start 함수
- 비밀번호 검색 및 출력을 수행합니다.
- M번 반복하면서 찾고자 하는 사이트 주소(findUrl)를 입력받음.
- cout << myMap[findUrl]; 로 해당 주소의 비밀번호를 출력.
- map의 [] 연산자는 키를 이용해 값을 바로 가져올 수 있음.
- 입력된 주소가 반드시 저장된 상태라는 문제 조건을 전제로 동작.
main 함수
- ios::sync_with_stdio(false), cin.tie(0), cout.tie(0); 로 빠른 입출력 설정.
- Input() 호출 → 사이트 정보 입력 및 저장.
- Game_Start() 호출 → 질의된 사이트의 비밀번호를 찾아 차례대로 출력.
[소스 코드]
#include <iostream>
#include <vector>
#include <cstring>
#include <map>
using namespace std;
int N, M;
map<string, string> myMap;
void Input() {
cin >> N >> M;
for (int i = 0; i < N; i++) {
string url, password;
cin >> url >> password;
myMap[url] = password;
}
}
void Game_Start() {
for (int i = 0; i < M; i++) {
string findUrl;
cin >> findUrl;
cout << myMap[findUrl] << "\n";
}
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
Input();
Game_Start();
}'백준 > 구현' 카테고리의 다른 글
| 백준 3085 c++"사탕 게임" -PlusUltraCode- (0) | 2025.09.21 |
|---|---|
| 백준 1244 c++ "스위치 켜고 끄기" -PlusUltraCode- (0) | 2025.09.17 |
| 백준 18258 c++ "큐 2" -PlusUltraCode- (0) | 2025.09.17 |
| 백준 1475 c++ "방 번호" -PlusUltraCode- (0) | 2025.09.14 |
| 백준 25206 c++ "너의 평점은" -PlusUltraCode- (0) | 2025.09.14 |