[๋ฐฑ์ค€/C++] 24524๋ฒˆ ์•„๋ฆ„๋‹ค์šด ๋ฌธ์ž์—ด

2022. 10. 5. 20:26ยทPS/C++
728x90

๋ฐฑ์ค€


๐Ÿค”๋ฌธ์ œ ์ดํ•ด

๋ฌธ์ž์—ด S์— ๋‚˜์˜จ ๋ฌธ์ž๋ฅผ ์ค‘๋ณต์—†์ด ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด T๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.


๐Ÿ”ฅํ’€์ด๐Ÿ”ฅ

์ถœ๋ ฅ๊ฐ’์„ ์ €์žฅํ•  ans์™€ ์•ŒํŒŒ๋ฒณ๋ณ„๋กœ queue ์ž๋ฃŒ๊ตฌ์กฐ q๋ฅผ ์ „์—ญ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ–ˆ๋‹ค.

์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด S์˜ ๊ฐ ๋ฌธ์ž์— ํ•ด๋‹นํ•˜๋Š” q์— ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.

 

S์˜ ๋ฌธ์ž ์ˆœ์„œ๋Œ€๋กœ T๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋‹จ S์—์„œ T๋ฅผ ๋งŒ๋“ค ๋ฌธ์ž๊ฐ€ ์žˆ์–ด์„œ ๋ฝ‘๊ณ  ๋‚˜๋ฉด S์—์„œ ๊ทธ ๋ฌธ์ž๋ณด๋‹ค ๋’ค์— ์˜ค๋Š” ๋ฌธ์ž ์ค‘์—์„œ T์˜ ๊ทธ ๋‹ค์Œ ๋ฌธ์ž๋ฅผ ๋ฝ‘์•„์•ผ ํ•˜๋ฏ€๋กœ prev๋ณด๋‹ค ๋” ํฐ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฌธ์ž๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ q๋ฅผ popํ•ด์ค€๋‹ค.

๋งŒ์•ฝ q๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด ๋ฌธ์ž์—ด T๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฏ€๋กœ T๋ฅผ ์ฐพ๋Š” ์—ฐ์‚ฐ์„ ์ค‘๋‹จํ•œ๋‹ค. cnt๊ฐ’์„ ์ด์šฉํ•ด T์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐพ์„ ๋•Œ๋งˆ๋‹ค ++ํ•ด์ฃผ๊ณ  T์˜ size์™€ ๋™์ผํ•ด์ง€๋ฉด ์ถœ๋ ฅ๊ฐ’ ans๋ฅผ ++ํ•ด์ค€๋‹ค.

 

โŒํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

์ˆœ์„œ๋Œ€๋กœ๋ผ๊ธธ๋ž˜ T๋ฅผ ์™„์„ฑ์‹œํ‚ฌ ๋•Œ๊นŒ์ง€ ๊ณ„์† S๋ฅผ ๋Œ์•„๋ณด๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ๋ฒˆ์— ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉด์„œ ์ˆœ์„œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” queue๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋งŒ์•ฝ S๊ฐ€ ababba์ด๊ณ  T๊ฐ€ ab์ผ ๋•Œ ์ฒซ๋ฒˆ์งธ a์™€ ์ฒซ๋ฒˆ์งธ b๋ž‘ ๋ฌถ์–ด์„œ T๋ฅผ ๋งŒ๋“ค์ง€ ๋‘๋ฒˆ์งธ b๋ž‘ ๋ฌถ์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ด์šฉํ–ˆ๋‹ค.

โœ๏ธ ํ›„๊ธฐ

์‰ฌ์šด ๋ฌธ์ œ์˜€๋Š”๋ฐ ๋„ˆ๋ฌด ์‰ฝ๊ฒŒ ํ’€๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ ํ‹€๋ฆฐ๊ฑฐ ๊ฐ™๋‹ค. for๋ฌธ์œผ๋กœ ๋‹ค ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹จ ํ•œ๋ฒˆ์— ์ฐพ๊ธฐ ์‰ฝ๊ณ , ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๊ณ  ํ’€์–ด์•ผ๊ฒ ๋‹ค.


#include <iostream>
#include <queue>

using namespace std;

string s, t;
int ans;
queue<int> q[27];

int main() {
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios::sync_with_stdio(false);

    cin >> s >> t;
    for (int i = 0; i < s.size(); i++) {
        q[s[i] - 'a'].push(i);
    }
    int flag = 1;
    while (flag) {
        int prev = -1;
        int cnt = 0;
        for (int i = 0; i < t.size(); i++) {
            int idx = t[i] - 'a';
            if (q[idx].empty()) {
                flag = 0;
                break;
            }
            while (!q[idx].empty()) {
                if (q[idx].front() > prev) {
                    prev = q[idx].front();
                    q[idx].pop();
                    cnt++;
                    break;
                }
                q[idx].pop();
            }
            if (cnt == t.size()) {
                ans++;
                break;
            }
        }
    }

    cout << ans;

}

 

728x90

'PS > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€/C++] 4889๋ฒˆ ์•ˆ์ •์ ์ธ ๋ฌธ์ž์—ด  (0) 2022.10.27
[๋ฐฑ์ค€/C++] 21610๋ฒˆ ๋งˆ๋ฒ•์‚ฌ ์ƒ์–ด์™€ ๋น„๋ฐ”๋ผ๊ธฐ  (0) 2022.10.06
[๋ฐฑ์ค€/C++] 9663๋ฒˆ N-Queen  (0) 2022.08.16
[๋ฐฑ์ค€/C++] 16457๋ฒˆ ๋‹จํ’์žŽ ์ด์•ผ๊ธฐ  (0) 2022.08.12
[๋ฐฑ์ค€/C++] 2239๋ฒˆ ์Šค๋„์ฟ   (0) 2022.08.11
'PS/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€/C++] 4889๋ฒˆ ์•ˆ์ •์ ์ธ ๋ฌธ์ž์—ด
  • [๋ฐฑ์ค€/C++] 21610๋ฒˆ ๋งˆ๋ฒ•์‚ฌ ์ƒ์–ด์™€ ๋น„๋ฐ”๋ผ๊ธฐ
  • [๋ฐฑ์ค€/C++] 9663๋ฒˆ N-Queen
  • [๋ฐฑ์ค€/C++] 16457๋ฒˆ ๋‹จํ’์žŽ ์ด์•ผ๊ธฐ
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (118) N
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • Develop (21)
        • Spring (9)
        • Java (12)
        • Python (0)
        • Algorithm (0)
        • ๊ธฐํƒ€ (0)
      • PS (39)
        • C++ (39)
        • Java (0)
      • TIL (11) N
      • Book (39)
        • ์ž๋ฐ”์˜ ์‹  (32)
        • ์Šคํ”„๋ง ์ž…๋ฌธ์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์›๋ฆฌ์™€ ์ดํ•ด (7)
      • ETC (4)
        • Blog (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์Šคํ„ฐ๋””
    Spring
    ์ž๋ฐ”์˜ ์‹ 
    TiL
    ์—์Šค๋„ท์‹œ์Šคํ…œ
    ์Šคํ”„๋ง ์ž…๋ฌธ
    ๋ฉ€ํ‹ฐ์บ ํผ์Šค
    ์ž๋ฐ”
    C++
    boj
    ๋ฐฑ์ค€
    ๋ถ€ํŠธ์บ ํ”„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    EC2
    ๊ฐ์ฒด์ง€ํ–ฅ
    GodOfJava
    ๋ฌธ์ œํ’€์ด
    DP
    1์ผ1๋ฐฑ์ค€
    Java
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
yulee_to
[๋ฐฑ์ค€/C++] 24524๋ฒˆ ์•„๋ฆ„๋‹ค์šด ๋ฌธ์ž์—ด
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”