๋ฌธ์
์ฝ๋
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N; cin>>N;
unordered_map<string, int> um;
vector<string> inp;
for(int i=0; i<N; i++){
string _inp; cin>>_inp;
um.insert({_inp, i});
}
for(int i=0; i<N; i++){
string _inp; cin>>_inp;
inp.push_back(_inp);
}
int cnt = 0;
for(int i=0; i<inp.size(); i++){
for(int k=i+1; k<inp.size(); k++){
if(um[inp[i]] > um[inp[k]]){
cnt++;
break;
}
}
}
cout<<cnt;
}
ํ์ด
๋จ์ํ๊ฒ ์๊ฐํด์ผ ํ๋ ๋ฌธ์ ์ ๋๋ค.
5
1 2 3 4 5
2 3 1 5 4
์์ ๊ฐ์ ์ ๋ ฅ์ด ์ฃผ์ด์ก๋ค๊ณ ์๊ฐํ๊ณ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ ํฐ๋ ์ง์ ์ฐจ๋๋ง๋ค์ ์์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ๋กํฉ๋๋ค.
[1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5
๊ทธ ํ, ํฐ๋์ ๋์ค๋ ์ฐจ๋์ ์ดํด๋ณด๋๋ฐ, ์์ ์ ์ฐจ๋ ์ดํ๋ก ๋์ค๋ ์ฐจ๋ ์ค์์ ์๊ธฐ๋ณด๋ค ๋นจ๋ฆฌ ์ง์ ํ๋ ์ฐจ๋์ด ์์ผ๋ฉด ์ถ์์ ํ ๊ฒ์ด ๋ฉ๋๋ค.
- 2๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ณด์์๋ [2] = 2, [1] = 1 ์ด๋ฏ๋ก 2๋ฒ ์ฐจ๋์ ์ถ์ํ ๊ฒ์ด ๋ฉ๋๋ค.
- 3์ ๊ธฐ์ค์ผ๋ก ๋ณด์์ ๋ [3] = 3, [1] = 1์ด๋ฏ๋ก 3๋ฒ ์ฐจ๋์ ์ถ์ํ ๊ฒ์ด ๋ฉ๋๋ค.
- 1์ ๊ธฐ์ค์ผ๋ก ๋ณด์์ ๋ [1] = 1 ๋ณด๋ค ์์ ์ฐจ๋์ด ๋ณธ์ธ ์ดํ๋ก ์์ผ๋ฏ๋ก ์ถ์ํ์ง ์์ ๊ฒ์ด ๋ฉ๋๋ค.
- 5๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ณด์์ ๋ [5] = 5, [4] = 4์ด๋ฏ๋ก 5๋ฒ ์ฐจ๋์ ์ถ์ํ ๊ฒ์ด ๋ฉ๋๋ค.
- 4๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ณด์์ ๋ [4] = 4๋ณด๋ค ์์ ์ฐจ๋์ด ๋ณธ์ธ ์ดํ๋ก ์์ผ๋ฏ๋ก ์ถ์ํ์ง ์์ ๊ฒ์ด ๋ฉ๋๋ค.
unordered_map์ ์ฌ์ฉํ ์ด์ ๋ hash๋ก ๊ตฌํ๋์ด์๊ธฐ ๋๋ฌธ์ด๋ฉฐ find์ O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
map ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ ๋ ๋ธ๋ํธ๋ฆฌ๋ก ๊ตฌํ๋์ด ์์ด์, O(logN)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 20164๋ฒ - ํ์ ํ๋ฆฌ ํธ์ (0) | 2022.09.15 |
---|---|
[๋ฐฑ์ค,c++] 20546๋ฒ - ๊ธฐ์ ์ ๋งค๋งค๋ฒ (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 2615๋ฒ - ์ค๋ชฉ (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 11383๋ฒ - ๋ (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 19939๋ฒ - ๋ฐ ํฐ๋จ๋ฆฌ๊ธฐ (0) | 2022.09.14 |
[๋ฐฑ์ค,c++] 2141๋ฒ - ์ฐ์ฒด๊ตญ (0) | 2022.09.13 |
๋๊ธ