Skip to content
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

Merged
merged 2 commits into from
Jun 3, 2024
Merged

5-oesnuj #20

merged 2 commits into from
Jun 3, 2024

Conversation

oesnuj
Copy link
Member

@oesnuj oesnuj commented Apr 12, 2024

πŸ”— 문제 링크

λ°±μ€€ | λ“£λ³΄μž‘

βœ”οΈ μ†Œμš”λœ μ‹œκ°„

30λΆ„

✨ μˆ˜λ„ μ½”λ“œ

두 λͺ…λ‹¨μ˜ μ‚¬λžŒλ“€ 쀑에 μ€‘λ³΅λ˜λŠ” μ‚¬λžŒμ„ μ°ΎλŠ” λ¬Έμ œμ΄λ‹€.

Note

  1. 각 λͺ…λ‹¨μ˜ μ‚¬λžŒ 수 n,m을 μž…λ ₯λ°›λŠ”λ‹€.

  2. 듣지 λͺ»ν•œ μ‚¬λžŒ λͺ…단을 n 크기의 배열에 λ„£λŠ”λ‹€.

  3. 보지도 λͺ»ν•œ μ‚¬λžŒμ„ mλͺ…을 순차적으둜 μž…λ ₯λ°›λŠ”λŒœ.

  4. μž…λ ₯λ°›μ„λ•Œ 이 μ‚¬λžŒμ΄ 듣지도 λͺ»ν•œ μ‚¬λžŒ λͺ…단에도 μžˆλŠ” μ‚¬λžŒμ΄λΌλ©΄ κ²°κ³Ό 배열에 λ„£λŠ”λ‹€.

  5. κ²°κ³Ό λ°°μ—΄μ˜ μž…λ ₯이 μ’…λ£Œλ˜λ©΄ 결과배열을 μ‚¬μ „μ‹μœΌλ‘œ μ •λ ¬ν•˜κ³  좜λ ₯ν•œλ‹€.

μœ„μ˜ μˆ˜λ„ μ½”λ“œλŒ€λ‘œ μ½”λ“œλ₯Ό μ§°λ‹€.

1οΈβƒ£μ²«λ²ˆμž¬ μ½”λ“œ

첫번째 ν’€μ΄μ—μ„œ μ‹œμ›ν•˜κ²Œ μ‹œκ°„μ΄ˆκ³Όλ₯Ό λ§žμ•„λ²„λ Έλ‹€...
보지도 λͺ»ν•œ μ‚¬λžŒμ΄ 듣지도 λͺ»ν•œ μ‚¬λžŒλ“€μ˜ 배열에 μžˆλŠ”μ§€ κ²€μƒ‰ν•˜λŠ” κ³Όμ •μ—μ„œ μˆœμ°¨νƒμƒ‰μ„ μ‚¬μš©ν–ˆλŠ”λ° 이게 μ‹œκ°„μ΄ˆκ³Όλ₯Ό μƒκΈ°κ²Œ ν•œ 것 κ°™μ•„ μ΄λΆ„νƒμƒ‰μœΌλ‘œ λ‹€μ‹œ μ§œλ΄€λ‹€.
이뢄 탐색을 μ‚¬μš©ν•˜λ‹ˆ λ°”λ‘œ 정닡이 λ˜μ—ˆλ‹€.

첫번째 μ½”λ“œ
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);   cin.tie(NULL);
    int n, m;
    cin >> n >> m;
    vector <string> v(n);
    for (auto& i : v){
        cin >> i;
    }
    vector <string> result;
    for (int i = 0; i < m; i++)
    {
        string word;
        cin >> word;
        auto it = find(v.begin(), v.end(), word);
        if (it != v.end()){
            result.push_back(word);  //보지도 λͺ»ν•œ μ‚¬λžŒμ΄ 듣지도 λͺ»ν•œ 벑터에 μžˆλ‹€λ©΄ 결과에 λ„£μŒ
        }
    }
    sort(result.begin(), result.end());  //μ •λ ¬ μˆ˜ν–‰
    cout << result.size() << "\n";
    for (const auto& word : result) {
        cout << word << "\n";
    }
    return 0;        
}

πŸ™„ μˆœμ°¨νƒμƒ‰, 이뢄탐색

순차 탐색은 λ°°μ—΄μ˜ μ‹œμž‘λΆ€ν„° λκΉŒμ§€λ₯Ό λ‹€ νƒμƒ‰ν•˜λ©΄μ„œ 찾고자 ν•˜λŠ” 값이 μžˆλŠ”μ§€ μ—†λŠ”μ§€ κ²€μƒ‰ν•˜λŠ” 방식

이뢄 탐색은 μ•„λž˜ μ‚¬μ§„μ²˜λŸΌ 인덱슀λ₯Ό μ ˆλ°˜μ„ λ‚˜λˆ„μ–΄ 절반 인덱슀의 값보닀 찾고자 ν•˜λŠ” 값이 큰지 μž‘μ€μ§€λ₯Ό ν™•μΈν•˜λ©΄μ„œ μ’ν˜€ λ‚˜κ°€λŠ” 방식.
큰지 μž‘μ€μ§€ 확인을 μœ„ν•΄λŠ” 이뢄탐색을 μ μš©ν•˜κ³ μž ν•˜λŠ” 배열이 λ°˜λ“œμ‹œ μ •λ ¬λ˜μ–΄ μžˆμ–΄μ•Όν•©λ‹ˆλ‹€

μˆœμ°¨νƒμƒ‰μ˜ μ‹œκ°„ λ³΅μž‘λ„ O(n)
μ΄μ§„νƒμƒ‰μ˜ μ‹œκ°„ λ³΅μž‘λ„ O(LogN)
λ¬Έμ œμ— m개 μž…λ ₯λ°›λŠ” 단어듀이 μ „λΆ€ 듣지도 λͺ»ν•œ 배열에 μ—†λŠ” λ‹¨μ–΄λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€λ©΄ 두 νƒμƒ‰μ˜ μ‹œκ°„μ°¨μ΄κ°€ μ—„μ²­λ‚˜λ‹€.
λ•Œλ¬Έμ— μˆœμ°¨νƒμƒ‰μ„ μ‚¬μš©ν–ˆμ„λ•Œ μ‹œκ°„μ΄ˆκ³Όκ°€ λ°œμƒν–ˆλ˜ 것이닀.

2️⃣ λ‘λ²ˆμ§Έ μ½”λ“œ(μ •λ‹΅)

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;


bool binarySearch(vector <string> &v, string str) //이뢄탐색
{
    int left = 0;
    int right = v.size() - 1;
    while (left <= right)
    {
        int middle = (left + right) / 2;
        if (str > v[middle])
            left = middle + 1;
        else if (str < v[middle])
            right = middle - 1;
        else
            return true;
    
    }
    return false;
}


int main()
{
    ios_base::sync_with_stdio(false);   cin.tie(NULL);
    int n, m;
    cin >> n >> m;
    vector <string> v(n);    //듣도 λͺ»ν•œ μ‚¬λžŒ μž…λ ₯
    for (auto& i : v){
        cin >> i;
    }
    sort(v.begin(), v.end()); //이뢄 탐색을 μœ„ν•΄ μ •λ ¬
    vector <string> result;
    for (int i = 0; i < m; i++)
    {
        string word;
        cin >> word; //보도 λͺ»ν•œ μ‚¬λžŒ μž…λ ₯
        if (binarySearch(v, word)){  //보도 λͺ»ν•œ μ‚¬λžŒμ΄ 듣도 보닀 λͺ»ν•œ μ‚¬λžŒμ—λ„ ν¬ν•¨λ˜λ©΄
            result.push_back(word);
        }
    }
    sort(result.begin(), result.end()); //λ§ˆμ§€λ§‰ μ‚¬μ „μˆœ 정렬을 μœ„ν•΄ μ •λ ¬

    cout << result.size() << "\n";
    for (const auto& word : result) {
        cout << word << "\n";
    }
    return 0;        
}

πŸ“š μƒˆλ‘­κ²Œ μ•Œκ²Œλœ λ‚΄μš©

이뢄탐색을 μ‚¬μš©ν•΄μ„œ ν’€μ—ˆλŠ”λ° λ‹€ ν’€κ³  κ΅¬κΈ€λ§μ„ν•˜λ‹ˆ mapν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 풀이방법도 μžˆλ‹€κ³  ν•΄μ„œ μ‹œν—˜λλ‚˜λ©΄ map도 곡뢀해봐야겠닀.
μ•žμœΌλ‘œ λ°±μ€€ ν’€λ–„ μ‹œκ°„λ³΅μž‘λ„λ₯Ό ν•œλ²ˆ 더 μƒκ°ν•˜κ³  μ œμΆœμ„ λˆŒλŸ¬μ•Όκ² λ‹€.

@Ghdrn1399
Copy link
Contributor

Binary Searchλž‘ Sequential Search ν•œλˆˆμ— 보기 μ‰½κ²Œ μžλ£ŒκΉŒμ§€ ν™œμš©ν•˜μ…”μ„œ μ˜¬λ €μ£Όμ‹ κ±° κ°μ‚¬ν•©λ‹ˆλ‹€!!
μ€€μ„œλ‹˜μ΄ 말씀 ν•΄μ£Όμ‹  map을 ν™œμš©ν•΄μ„œ ν’€μ΄ν•˜λŠ” λ‚΄μš©λ„ 저도 μ‹œν—˜ λλ‚˜κ³  풀어봐야 κ² μ–΄μš”!!!
ν˜Ήμ‹œ λͺ°λΌμ„œ 참고링크 올리고 κ°€κ² μŠ΅λ‹ˆλ‹€ γ…Žγ…Ž
https://kyunstudio.tistory.com/169

5번째 PR 수고 λ§ŽμœΌμ…¨μ–΄μš”!!! μ‹œν—˜λ„ ν™”μ΄νŒ… ν•˜μ„Έμš₯!

Copy link

@9kyo-hwang 9kyo-hwang left a 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>도 λ™μΌν•©λ‹ˆλ‹€.)κ°€ μ‘΄μž¬ν•˜λŠ”λ°, 이 λ‘˜μ€ "μ€‘λ³΅λœ μ›μ†Œλ₯Ό ν—ˆμš©ν•˜μ§€ μ•Šλ„λ‘ μ €μž₯ν•˜λŠ” 자료ꡬ쑰"λΌλŠ” 점은 λ™μΌν•˜λ‚˜ κ΅¬ν˜„μ΄ λ‹€λ₯΄κ²Œ λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.

  1. set은 이진 탐색 νŠΈλ¦¬μ— κΈ°λ°˜ν•΄ κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŠΉμ„± λ•Œλ¬Έμ— μ›μ†Œλ₯Ό 순회 λ˜λŠ” μΆ”μΆœν•  경우 "μ •λ ¬λœ" μƒνƒœλ₯Ό μœ μ§€ν•˜λ‚˜, μ›μ†Œλ₯Ό μ‚½μž…/μ‚­μ œν•˜λŠ” 데 트리의 높이에 λΉ„λ‘€ν•œ μ•½ O(logN)의 μ‹œκ°„λ³΅μž‘λ„λ₯Ό κ°€μ§‘λ‹ˆλ‹€.
  2. unordered_set은 ν•΄μ‹œμ— κΈ°λ°˜ν•œ associative array둜 κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. map은 (key, value) 쌍이고 set은 key μžμ²΄κ°€ value인 μ…ˆμ΄μ£ . λ”°λΌμ„œ μ›μ†Œλ₯Ό μ‚½μž…/μ‚­μ œν•˜λŠ” 데 "O(1)에 κ°€κΉŒμš΄" μ‹œκ°„λ³΅μž‘λ„λ₯Ό κ°€μ§€μ§€λ§Œ, μ •λ ¬λœ μƒνƒœλ₯Ό μœ μ§€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 λ‘˜μ˜ 차이λ₯Ό μΈμ§€ν•˜κ³  잘 ν™œμš©ν•΄λ΄…μ‹œλ‹€ :p

{
string word;
cin >> word; //보도 λͺ»ν•œ μ‚¬λžŒ μž…λ ₯
if (binarySearch(v, word)){ //보도 λͺ»ν•œ μ‚¬λžŒμ΄ 듣도 보닀 λͺ»ν•œ μ‚¬λžŒμ—λ„ ν¬ν•¨λ˜λ©΄

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);
}

Copy link
Collaborator

@pu2rile pu2rile left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

μ €λŠ” 문제λ₯Ό 항상 파이썬으둜 ν’€μ–΄μ„œ λ°”λ‘œ set/map을 μƒκ°ν–ˆμ—ˆλŠ”λ° cpp에도 같은 ν•¨μˆ˜κ°€ μžˆκ΅°μš”!!

저도 μ•½κ°„ μ²¨μ–Έν•˜μžλ©΄,

  1. set을 μ‚¬μš©ν•˜μ—¬ 듣도 λͺ»ν•œ μ‚¬λžŒμ˜ λͺ…단을 μ €μž₯ν•˜κ³ 
  2. 보도 λͺ»ν•œ μ‚¬λžŒμ˜ λͺ…단을 μž…λ ₯λ°›μœΌλ©΄μ„œ
  3. 듣도 λͺ»ν•œ μ‚¬λžŒμ˜ λͺ…단에 ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ 확인 ν›„
  4. 듣도 λͺ»ν•œ μ‚¬λžŒμ˜ λͺ…단과 보도 λͺ»ν•œ μ‚¬λžŒμ˜ λͺ…λ‹¨μ˜ ꡐ집합을 찾을 수 μžˆμ„ 것 κ°™μ•„μš”!

이번 pr도 μˆ˜κ³ ν•˜μ…¨μŠ΅λ‹ˆλ‹€!

Copy link
Collaborator

@suhyun113 suhyun113 left a 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) # 듣도 보도 λͺ»ν•œ μ‚¬λžŒμ˜ λͺ…단 좜λ ₯

@suhyun113
Copy link
Collaborator

μΆ”κ°€μ μœΌλ‘œ c++ μ–Έμ–΄λ‘œ λ„μ „ν•΄λ΄€μ–΄μš”!!
c++은 아직 λ―Έμˆ™ν•΄μ„œ μ’€ λΉ„νš¨μœ¨μ μΌ 수 μžˆμ§€λ§Œ,, c++μ—μ„œ map으둜 μ•Œκ³ λ¦¬μ¦˜μ„ μ§œλ³΄λŠ” 것도 μ’‹λ„€μš”γ…Žγ…Ž μ’€ 더 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;
}

@oesnuj oesnuj merged commit df543fa into main Jun 3, 2024
1 check passed
@oesnuj oesnuj deleted the 5-oesnuj branch June 3, 2024 02:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants