[BOJ][C++] ๋ฐฑ์ค€ 2002๋ฒˆ: ์ถ”์›”

2024. 6. 14. 05:26ยท๐Ÿ’ญ Problem Solving/C++

๋ฌธ์ œ

https://www.acmicpc.net/problem/2002

ํ’€์ด

๐Ÿ” ์ ‘๊ทผ

  1. ์ฐจ๊ฐ€ ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๋ฅผ ์ˆซ์ž๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ
  2. A์ฐจ๊ฐ€ ๋‹ค๋ฅธ ์ฐจ๋ฅผ ์ถ”์›”ํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•„๋Š” ๋ฐฉ๋ฒ•
    (1) A์˜ ๋“ค์–ด๊ฐˆ ๋•Œ ์ธ๋ฑ์Šค๋ณด๋‹ค ๋‚˜์˜ฌ ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ ์ž‘์œผ๋ฉด ์ถ”์›”?
           → ๋“ค์–ด๊ฐˆ ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ A๋ณด๋‹ค ํฐ ์ฐจ๋“ค์ด ์ถ”์›”ํ•˜๋ฉด์„œ, A์˜ ๋‚˜์˜ฌ ๋•Œ ์ธ๋ฑ์Šค๋„ ๋’ค๋กœ ๋ฐ€๋ฆด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ
                A์˜ ์ธ๋ฑ์Šค ๋น„๊ต๋งŒ์œผ๋กœ๋Š” ํŒ๋‹จํ•  ์ˆ˜ ์—†๋‹ค.

    (2) A๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋‚˜์˜จ ์ฐจ ์ค‘์—์„œ, A๋ณด๋‹ค ๋“ค์–ด๊ฐˆ ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ ์ž‘์€ ์ฐจ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด
          A๋ณด๋‹ค ๋จผ์ € ๋“ค์–ด์™”๋Š”๋ฐ A๋ณด๋‹ค ๋’ค์— ๋‚˜์˜จ ๊ฒƒ์ด๋ฏ€๋กœ A๋Š” ํ„ฐ๋„ ์•ˆ์—์„œ ์ถ”์›”์„ ํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•œ๋‹ค.

๐Ÿ”จ ๊ตฌํ˜„

  1. map์„ ์ด์šฉํ•ด ์ฐจ๋Ÿ‰ ๋ฒˆํ˜ธ(key)์™€ ๋“ค์–ด๊ฐ„ ์ˆœ์„œ(value)๋ฅผ ์ €์žฅํ•œ๋‹ค.
  2. vector์— ๋‚˜์˜จ ์ฐจ์˜ ์ฐจ๋Ÿ‰ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•œ๋‹ค.
  3. ๋‚˜์˜จ ์ฐจ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํƒ์ƒ‰ํ•˜๋ฉด์„œ map์„ ์ด์šฉํ•ด ๋“ค์–ด๊ฐˆ ๋•Œ ์ธ๋ฑ์Šค๋ฅผ ๋น„๊ตํ•œ๋‹ค.
    : ๋’ค์— ๋‚˜์˜จ ์ฐจ๋“ค๊ณผ ๋น„๊ตํ•˜๋ฉด์„œ, ๋“ค์–ด๊ฐˆ ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ ์ž‘์€ ์ฐจ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด ์ •๋‹ต(์ถ”์›”ํ•œ ์ฐจ) ์ฆ๊ฐ€.
      ๋‹ค์Œ ์ฐจ ํƒ์ƒ‰ ์ง„ํ–‰.

์ฝ”๋“œ

#include <iostream>
#include <map>
#include <vector>

using namespace std;

int passCar(int n, map<string, int> &enter, vector<string> &exit) {
    int ans = 0;

    for (int i = 0; i < n; i++) {   // ๋‚˜์˜จ ์ฐจ ํƒ์ƒ‰
        for (int j = i + 1; j < n; j++) {   // ๋’ค์— ๋‚˜์˜จ ์ฐจ๋“ค๊ณผ ๋น„๊ต
            // ๋“ค์–ด๊ฐˆ ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ ์ž‘์€ ์ฐจ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด
            if (enter[exit[i]] > enter[exit[j]]) {
                ans++;
                break;
            }
        }
    }

    return ans;
}

int main() {
    int n, ans = 0;  // n: ์ฐจ์˜ ๋Œ€์ˆ˜
    string input;
    map<string, int> enter;   // ๋Œ€๊ทผ(์ž…๊ตฌ)
    vector<string> exit;    // ์˜์‹(์ถœ๊ตฌ)

    // ์ž…๋ ฅ
    cin >> n;
    for (int i = 0; i < n; i++) {   // ๋“ค์–ด๊ฐ„ ์ฐจ
        cin >> input;
        enter[input] = i;
    }
    for (int i = 0; i < n; i++) {   // ๋‚˜๊ฐ„ ์ฐจ
        cin >> input;
        exit.push_back(input);
    }

    // ์ถœ๋ ฅ
    cout << passCar(n, enter, exit);

    return 0;
}

'๐Ÿ’ญ Problem Solving > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ][C++] ๋ฐฑ์ค€ 15649๋ฒˆ: N๊ณผ M (1)  (0) 2024.10.28
[SWEA][C++] 1289. ์›์žฌ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ณต๊ตฌํ•˜๊ธฐ  (0) 2024.10.16
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ๋„คํŠธ์›Œํฌ  (0) 2024.06.04
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ  (0) 2024.06.02
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ํƒ€๊ฒŸ ๋„˜๋ฒ„  (0) 2024.05.31
'๐Ÿ’ญ Problem Solving/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [BOJ][C++] ๋ฐฑ์ค€ 15649๋ฒˆ: N๊ณผ M (1)
  • [SWEA][C++] 1289. ์›์žฌ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ณต๊ตฌํ•˜๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ๋„คํŠธ์›Œํฌ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (42)
        • C++ (28)
        • Java (14)
      • ๐Ÿ“ Study (17)
        • React (1)
        • Java (16)
      • ๐Ÿ’ป CS (11)
        • ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ (2)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    react
    github
    dynamic programming
    C
    ๊ตฌํ˜„
    unity
    VR
    CS
    git
    La Piscine
    42๊ฒฝ์‚ฐ
    ๋งต
    .h
    ํŠธ๋ฆฌ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    dfs
    CSS
    BFS
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    java
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    swea
    makefile
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๋ฐฑ์ค€
    ๋ฐฑํŠธ๋ž˜ํ‚น
    ์ •๋ ฌ
    HTML
    knapsack
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[BOJ][C++] ๋ฐฑ์ค€ 2002๋ฒˆ: ์ถ”์›”
์ƒ๋‹จ์œผ๋กœ

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