(TIL) 20210713

2021. 7. 13. 18:06TIL(Today I learned)

반응형

📕Facts(한 것)


  • 백준 문제 풀기
  • 물놀이 하기

 

📕Feeling(느낀 점)


백준에서 비밀번호 찾기라는 문제를 풀었다.

 

hash-map을 이용해서 해결하는 문제였는데, 아무리 봐도 코드가 틀리지 않았는데 시간초과가 발생했다.

계속 고민을 하다가 도저히 안 돼서 다른 사람이 푼 코드를 보니,

 

ios::sync_with_stdio(0);

cin.tie(0);

 

이 두 줄을 적지 않아서 발생한 문제였다.

C의 <stdio.h>와 std::cin, std::cout의 iostream 함수들은 동기화가 되어 있는데 

이 라이브러리와의 동기화를 끊어 줌으로서 속도를 향상시킬 수 있다는 것이다.

(역으로 printf, scanf가 속도는 빠르다)

 

#include <iostream>
#include <algorithm>
#include <map>

using namespace std;

map<string, string> arr;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);

    int n, m;
    cin >> n >> m;
    string temp1, temp2;
    for(int i = 0; i < n; i++) {
        cin >> temp1 >> temp2;
        arr[temp1] =  temp2;
    }

    for(int i = 0; i < m; i++) {
        cin >> temp1;

        cout << arr[temp1] << "\n";
    }
    return 0;
}

 

 

📕여담


 

반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20210715  (0) 2021.07.15
(TIL) 20210714  (0) 2021.07.14
(TIL) 20210712  (0) 2021.07.12
(TIL) 20210711  (0) 2021.07.11
(TIL) 20210710  (0) 2021.07.11