-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
5-oesnuj #20
Conversation
Binary Searchλ Sequential Search νλμ 보기 μ½κ² μλ£κΉμ§ νμ©νμ
μ μ¬λ €μ£Όμ κ±° κ°μ¬ν©λλ€!! 5λ²μ§Έ PR μκ³ λ§μΌμ ¨μ΄μ!!! μνλ νμ΄ν νμΈμ₯! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ΄λ€ 리μ€νΈ(λ΄μ§ μ§ν©)μ νΉμ μμκ° μ‘΄μ¬νλ μ§ κ²μ¬νλ λ°©λ² μ€ κ°μ₯ ν¨μ¨μ μΈ κ±΄ μμ set/mapμ μ¬μ©νλ κ±°μ£ !
μ λ ¬κ³Ό μ΄μ§ νμμ ν΅ν΄μλ λΉ λ₯΄κ² μ°ΎμλΌ μ μμ§λ§, setμ μμλ₯Ό λ£μ΄λμΌλ©΄ O(1)μ μλλ‘ λΉ λ₯΄κ² κ²μ¬ν μ μμΌλκΉμ :)
#include <iostream>
#include <unordered_set>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
cin.tie(nullptr)->sync_with_stdio(false);
int N, M; cin >> N >> M;
unordered_set<string> NeverSeen;
string Name;
while(N--)
{
cin >> Name;
NeverSeen.emplace(Name);
}
vector<string> OffBrand;
while(M--)
{
cin >> Name;
if(NeverSeen.find(Name) != NeverSeen.end())
{
OffBrand.emplace_back(Name);
}
}
sort(OffBrand.begin(), OffBrand.end());
cout << OffBrand.size() << "\n";
for(const string& Ans : OffBrand)
{
cout << Ans << "\n";
}
return 0;
}
μ°Έκ³ λ‘ C++μλ κ³Ό <unordered_set> 2κ°μ§(, <unordered_map>λ λμΌν©λλ€.)κ° μ‘΄μ¬νλλ°, μ΄ λμ "μ€λ³΅λ μμλ₯Ό νμ©νμ§ μλλ‘ μ μ₯νλ μλ£κ΅¬μ‘°"λΌλ μ μ λμΌνλ ꡬνμ΄ λ€λ₯΄κ² λμ΄μμ΅λλ€.
- setμ μ΄μ§ νμ νΈλ¦¬μ κΈ°λ°ν΄ ꡬνλμ΄ μμ΅λλ€. μ΄λ¬ν νΉμ± λλ¬Έμ μμλ₯Ό μν λλ μΆμΆν κ²½μ° "μ λ ¬λ" μνλ₯Ό μ μ§νλ, μμλ₯Ό μ½μ /μμ νλ λ° νΈλ¦¬μ λμ΄μ λΉλ‘ν μ½ O(logN)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λλ€.
- unordered_setμ ν΄μμ κΈ°λ°ν associative arrayλ‘ κ΅¬νλμ΄ μμ΅λλ€. mapμ (key, value) μμ΄κ³ setμ key μμ²΄κ° valueμΈ μ μ΄μ£ . λ°λΌμ μμλ₯Ό μ½μ /μμ νλ λ° "O(1)μ κ°κΉμ΄" μκ°λ³΅μ‘λλ₯Ό κ°μ§μ§λ§, μ λ ¬λ μνλ₯Ό μ μ§νμ§ μμ΅λλ€.
μ΄ λμ μ°¨μ΄λ₯Ό μΈμ§νκ³ μ νμ©ν΄λ΄ μλ€ :p
{ | ||
string word; | ||
cin >> word; //보λ λͺ»ν μ¬λ μ λ ₯ | ||
if (binarySearch(v, word)){ //보λ λͺ»ν μ¬λμ΄ λ£λ λ³΄λ€ λͺ»ν μ¬λμλ ν¬ν¨λλ©΄ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C++ STLμμ μ΄μ§ κ²μμ μ§μνλ€λ μ¬μ€ μκ³ κ³μ κ°μ? algorithm ν€λμ λ€μκ³Ό κ°μ μκ·Έλμ²λ₯Ό κ°λ binary_searchλ ν¨μκ° μ‘΄μ¬νλ΅λλ€ :)
template< class ForwardIt, class T >
bool binary_search( ForwardIt first, ForwardIt last, const T& value );
κ·Έλμ λ³λμ ν¨μλ₯Ό μ μν νμ μμ΄ μλμ κ°μ΄ λ°λ‘ wordλ₯Ό μ°ΎμλΌ μ μλ΅λλ€
if(binary_search(v.begin(), v.end(), word)) {
result.emplace_back(word);
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ λ λ¬Έμ λ₯Ό νμ νμ΄μ¬μΌλ‘ νμ΄μ λ°λ‘ set/mapμ μκ°νμλλ° cppμλ κ°μ ν¨μκ° μκ΅°μ!!
μ λ μ½κ° 첨μΈνμλ©΄,
- setμ μ¬μ©νμ¬ λ£λ λͺ»ν μ¬λμ λͺ λ¨μ μ μ₯νκ³
- 보λ λͺ»ν μ¬λμ λͺ λ¨μ μ λ ₯λ°μΌλ©΄μ
- λ£λ λͺ»ν μ¬λμ λͺ λ¨μ ν¬ν¨λμ΄ μλμ§ νμΈ ν
- λ£λ λͺ»ν μ¬λμ λͺ λ¨κ³Ό 보λ λͺ»ν μ¬λμ λͺ λ¨μ κ΅μ§ν©μ μ°Ύμ μ μμ κ² κ°μμ!
μ΄λ² prλ μκ³ νμ ¨μ΅λλ€!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ€μλ! λ무 λ¦¬λ·°κ° λ¦μ΄μ Έμ μ£μ‘ν΄μπ
μ€μλ λ¬Έμ μ λ΄€μ΄μ! λ£λ³΄μ‘? λ¬Έμ μ΄λ¦μ΄ μ¬λ―Έμλ€μγ
νμ κΌΌκΌΌνκ² λ¬Έμ μ€λͺ
ν΄μ£Όμ
μ κ°μ¬ν΄μ! λ¬Έμ μ΄ν΄νλλ° μ λ§ λμμ΄ λ§μ΄ λμμ΄μ.
λ¬Έμ λ§ μ½μ΄λ΄€μ λλ κ·Έλ₯ λ£λ λͺ»ν μ¬λκ³Ό 보λ λͺ»ν μ¬λμ λΉκ΅ν΄μ μ€λ³΅μΈ μ΄λ¦μ΄ μλ€λ©΄ κ·Έ μ΄λ¦μ 리μ€νΈμ λ΄μμ μ¬μ μμΌλ‘ μΆλ ₯νλ©΄ λ κΊΌλΌλ μκ°μ΄ λ€μ΄μ λ³λ‘ μ΄λ ΅μ§ μμ보μμ΄μ...κ·Έλ°λ°,,, μ€μλ 첫λ²μ§Έ μ½λλ₯Ό 보λ λ±,,, λλ κ°μ μκ°μ μ΄λ―Έ νμ
¨κ΅¬λ... λ¨μν μμ°¨νμμ νλ©΄ λ무 μκ°μ΄ μ€λ 걸리λκ΅°μ,,, μκ³ λ¦¬μ¦ λ¬Έμ λ λ¨μν μ½λλ₯Ό μ§λ κ²μ΄ μλλΌ μκ°μ΄κ³Όκ° λμ§ μλλ‘ ν¨μ¨μ μΌλ‘ μ§μΌν΄μ μ΄λ €μ΄ κ² κ°κΈ°λ νκ³ ,, κ·Έλμ μ¬λ―Έμλ κ² κ°μμ!!
μ΄λΆνμμ μ΄μ©ν΄μΌ νλ€λ,, ν λ²λ ν΄λ³Έ μ μ΄ μμ΄μ μ€μλ μ½λλ₯Ό 보며 μ΄μ¬ν μ΄ν΄ν΄λ΄€μ΄μ! μμ°¨νμκ³Ό μ΄λΆνμμ μ°¨μ΄λ₯Ό λλμΌλ‘λ μκ³ μμλλ°, λ°λ‘ 곡λΆν΄λ³Έ μ μ΄ μμ΄μ κ°λ μ€λͺ μ΄ λμ λμμ΄μ.
κ²°κ΅, κ°μ₯ ν¨μ¨μ μΈ λ°©λ²μ set/mapμ μ΄μ©νλ κ±°λΌλ,,, μκ°ν΄λ³΄λ νμ΄μ¬μλ setν¨μκ° μμ΄μ λ νΈν κ² κ°κΈ°λ νλ€μ! μλ νμ΄μ¬ μ½λ μ°Έκ³ ν΄λ³΄μ λ μ’μ κ² κ°μμ!
π§νμ΄μ¬ μ½λπ§
n, m = map(int, input().split()) # λ£λ λͺ»ν μ¬λ μ, 보λ λͺ»ν μ¬λ μ
n_name = set() # λ£λ λͺ»ν μ¬λμ λͺ
λ¨
m_name = set() # 보λ λͺ»ν μ¬λμ λͺ
λ¨
result = [] # λ£λ 보λ λͺ»ν μ¬λμ λͺ
λ¨
for _ in range(n):
n_name.add(input())
for _ in range(m):
m_name.add(input())
for i in n_name: # λ£λ λͺ»ν μ¬λ μ€
if i in m_name: # 보λ λͺ»ν μ¬λ
result.append(i)
result.sort() # μ¬μ μ μ λ ¬
print(len(result)) # λ£λ 보λ λͺ»ν μ¬λ μ μΆλ ₯
for i in result:
print(i) # λ£λ 보λ λͺ»ν μ¬λμ λͺ
λ¨ μΆλ ₯
μΆκ°μ μΌλ‘ c++ μΈμ΄λ‘ λμ ν΄λ΄€μ΄μ!! π§C++ μ½λπ§#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
map<string, int> nameMap;
vector<string> result;
int n, m; // 3, 4
cin >> n >> m;
string name;
// λ£λ λͺ»ν μ¬λμ λͺ
λ¨ mapμ μ μ₯
for (int i = 0; i < n; i++) {
cin >> name;
nameMap[name] = 1;
}
// 보λ λͺ»ν μ¬λμ λͺ
λ¨ νμΈν΄ λ£λ λͺ»ν μ¬λμ λͺ
λ¨μ μλ μ¬λμΈμ§ λΉκ΅
for (int i = 0; i < m; i++) {
cin >> name;
if (nameMap.find(name) != nameMap.end()) { // λ§μ§λ§μ μΆκ°λ μ΄λ¦μ 보λ λͺ»ν μ¬λμ μ΄λ¦μ΄λ―λ‘ μ μΈ
result.push_back(name);
}
}
// μ¬μ μ μ λ ¬
sort(result.begin(), result.end());
cout << result.size() << endl;
for (auto& i : result) {
cout << i << endl;
}
return 0;
} |
π λ¬Έμ λ§ν¬
λ°±μ€ | λ£λ³΄μ‘
βοΈ μμλ μκ°
30λΆ
β¨ μλ μ½λ
λ λͺ λ¨μ μ¬λλ€ μ€μ μ€λ³΅λλ μ¬λμ μ°Ύλ λ¬Έμ μ΄λ€.
Note
κ° λͺ λ¨μ μ¬λ μ n,mμ μ λ ₯λ°λλ€.
λ£μ§ λͺ»ν μ¬λ λͺ λ¨μ n ν¬κΈ°μ λ°°μ΄μ λ£λλ€.
보μ§λ λͺ»ν μ¬λμ mλͺ μ μμ°¨μ μΌλ‘ μ λ ₯λ°λλ.
μ λ ₯λ°μλ μ΄ μ¬λμ΄ λ£μ§λ λͺ»ν μ¬λ λͺ λ¨μλ μλ μ¬λμ΄λΌλ©΄ κ²°κ³Ό λ°°μ΄μ λ£λλ€.
κ²°κ³Ό λ°°μ΄μ μ λ ₯μ΄ μ’ λ£λλ©΄ κ²°κ³Όλ°°μ΄μ μ¬μ μμΌλ‘ μ λ ¬νκ³ μΆλ ₯νλ€.
μμ μλ μ½λλλ‘ μ½λλ₯Ό μ§°λ€.
1οΈβ£μ²«λ²μ¬ μ½λ
첫λ²μ§Έ νμ΄μμ μμνκ² μκ°μ΄κ³Όλ₯Ό λ§μλ²λ Έλ€...
보μ§λ λͺ»ν μ¬λμ΄ λ£μ§λ λͺ»ν μ¬λλ€μ λ°°μ΄μ μλμ§ κ²μνλ κ³Όμ μμ μμ°¨νμμ μ¬μ©νλλ° μ΄κ² μκ°μ΄κ³Όλ₯Ό μκΈ°κ² ν κ² κ°μ μ΄λΆνμμΌλ‘ λ€μ μ§λ΄€λ€.
μ΄λΆ νμμ μ¬μ©νλ λ°λ‘ μ λ΅μ΄ λμλ€.
첫λ²μ§Έ μ½λ
π μμ°¨νμ, μ΄λΆνμ
μμ°¨ νμ
μ λ°°μ΄μ μμλΆν° λκΉμ§λ₯Ό λ€ νμνλ©΄μ μ°Ύκ³ μ νλ κ°μ΄ μλμ§ μλμ§ κ²μνλ λ°©μμ΄λΆ νμ
μ μλ μ¬μ§μ²λΌ μΈλ±μ€λ₯Ό μ λ°μ λλμ΄ μ λ° μΈλ±μ€μ κ°λ³΄λ€ μ°Ύκ³ μ νλ κ°μ΄ ν°μ§ μμμ§λ₯Ό νμΈνλ©΄μ μ’ν λκ°λ λ°©μ.ν°μ§ μμμ§ νμΈμ μν΄λ μ΄λΆνμμ μ μ©νκ³ μ νλ λ°°μ΄μ΄ λ°λμ μ λ ¬λμ΄ μμ΄μΌν©λλ€
μμ°¨νμ
μ μκ° λ³΅μ‘λO(n)
μ΄μ§νμ
μ μκ° λ³΅μ‘λO(LogN)
λ¬Έμ μ mκ° μ λ ₯λ°λ λ¨μ΄λ€μ΄ μ λΆ λ£μ§λ λͺ»ν λ°°μ΄μ μλ λ¨μ΄λ‘ ꡬμ±λμ΄ μλ€λ©΄ λ νμμ μκ°μ°¨μ΄κ° μμ²λλ€.
λλ¬Έμ μμ°¨νμμ μ¬μ©νμλ μκ°μ΄κ³Όκ° λ°μνλ κ²μ΄λ€.
2οΈβ£ λλ²μ§Έ μ½λ(μ λ΅)
π μλ‘κ² μκ²λ λ΄μ©
μ΄λΆνμμ μ¬μ©ν΄μ νμλλ° λ€ νκ³ κ΅¬κΈλ§μνλ mapν¨μλ₯Ό μ¬μ©νλ νμ΄λ°©λ²λ μλ€κ³ ν΄μ μνλλλ©΄ mapλ 곡λΆν΄λ΄μΌκ² λ€.
μμΌλ‘ λ°±μ€ νλ μκ°λ³΅μ‘λλ₯Ό νλ² λ μκ°νκ³ μ μΆμ λλ¬μΌκ² λ€.