๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/BOJ

[BOJ] #2941 ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ

by dar0m! 2020. 4. 16.
์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ •๋‹ต ๋น„์œจ
1 ์ดˆ 128 MB 46.116%
 

2941๋ฒˆ: ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ

๋ฌธ์ œ ์˜ˆ์ „์—๋Š” ์šด์˜์ฒด์ œ์—์„œ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์„ ์ž…๋ ฅํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์„ ๋ณ€๊ฒฝํ•ด์„œ ์ž…๋ ฅํ–ˆ๋‹ค. ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ ๋ณ€๊ฒฝ ฤ c= ฤ‡ c- dลพ dz= ฤ‘ d- lj lj nj nj š s= ลพ z= ์˜ˆ๋ฅผ ๋“ค์–ด, ljes=njak์€ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ 6๊ฐœ(lj, e, š, nj, a, k)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ช‡ ๊ฐœ์˜ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. dลพ๋Š” ๋ฌด์กฐ๊ฑด ํ•˜๋‚˜์˜ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์“ฐ์ด๊ณ ,

www.acmicpc.net

 

๋ฌธ์ œ

์˜ˆ๋ฅผ ๋“ค์–ด, ljes=njak์€ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ 6๊ฐœ(lj, e, š, nj, a, k)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ช‡ ๊ฐœ์˜ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

dลพ๋Š” ๋ฌด์กฐ๊ฑด ํ•˜๋‚˜์˜ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์“ฐ์ด๊ณ , d์™€ ลพ๊ฐ€ ๋ถ„๋ฆฌ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ง€ ์•Š๋Š”๋‹ค. lj์™€ nj๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ์œ„ ๋ชฉ๋ก์— ์—†๋Š” ์•ŒํŒŒ๋ฒณ์€ ํ•œ ๊ธ€์ž์”ฉ ์„ผ๋‹ค.

์ฒซ์งธ ์ค„์— ์ตœ๋Œ€ 100๊ธ€์ž์˜ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ '-', '='๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ๋ช‡ ๊ฐœ์˜ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ•ด๊ฒฐ

  1. ๋‹ต์œผ๋กœ ์ถœ๋ ฅํ•  ๋ณ€์ˆ˜ ans๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  2. ๋ฌธ์ž์—ด์„ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ๋ฐ”๋กœ ์ด์ „ ๋ฌธ์ž s[i-1]๊ณผ, ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ๋ฌธ์ž s[i]๋ฅผ ํ•ฉํ•˜์—ฌ tmp๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋งŒ๋“ ๋‹ค.
  3. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, tmp๊ฐ€ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์— ํ•ด๋‹นํ•œ๋‹ค๋ฉด, ์ „์ฒด๋ฌธ์ž์—ด ๊ธธ์ด์—์„œ -1์„ ํ•ด์ค€๋‹ค.
  4. ํ•˜์ง€๋งŒ ์•ŒํŒŒ๋ฒณ "dz="๋ฅผ ํŒ๋‹จํ•  ๋•Œ๋Š” -2๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— "dz"๋ฅผ ๋งŒ๋‚˜๋ฉด ๊ทธ ๋’ค์˜ ๋ฌธ์ž๊ฐ€ '='์ธ์ง€ ํŒ๋‹จํ•˜์—ฌ ๋งž๋‹ค๋ฉด ans์—์„œ 2๋งŒํผ ๋นผ์ฃผ๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ๋„˜์–ด๊ฐ„๋‹ค.
  5. ์ด๋ ‡๊ฒŒ ๋งค๋ฒˆ ๋‘ ๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ํ•ฉ์ณ ํ•˜๋‚˜์˜ tmp๋ผ๋Š” ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“  ๋‹ค์Œ ๋ฌธ์ž์—ด s ๊ธธ์ด๋งŒํผ ํƒ์ƒ‰ํ•˜๊ณ  ๋‚˜๋ฉด ๋งˆ์ง€๋ง‰์— ์ถœ๋ ฅํ•˜๋Š” ans๊ฐ€ ์ •๋‹ต์ด ๋œ๋‹ค.

 

์ฝ”๋“œ

๋ฉ”๋ชจ๋ฆฌ ์‹œ๊ฐ„
 1988 KB  0 ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
using namespace std;
int ans;
string s;
int main() {
    cin >> s;
 
    string tmp;
    ans = s.length();
    for (int i = 1; i <= s.length(); i++) {
        tmp += s[i-1]; tmp += s[i];
        if (tmp == "c=" || tmp == "c-" || tmp == "d-" || tmp == "lj" || tmp == "nj" || tmp == "s=" || tmp == "z=") {
            ans -= 1;
        }
        else if (tmp == "dz") {
            if (i + 1 < s.length() && s[i + 1== '=') {
                ans -= 2;
                i++;
            }
        }
        tmp = "";
    }
    printf("%d", ans);
    return 0;
}
cs

 

ํ›„๊ธฐ

์ƒˆ๋กญ๊ฒŒ ์‹œ์ž‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””์˜ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ œ๊ฐ€ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์ด ๋˜์—ˆ๋Š”๋ฐ ์ •๋ง ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์˜ ํ’€์ด๊ฐ€ ์žˆ์–ด์„œ ๋„ˆ๋ฌด ํฅ๋ฏธ๋กœ์› ๊ณ  ์•ž์œผ๋กœ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””๊ฐ€ ์ž˜ ์ด๋ฃจ์–ด์ง€๊ณ  ์ธ๊ฐ„์ ์œผ๋กœ๋„ ์นœํ•ด์กŒ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žŒ์ด๋‹ค..!

๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ• 1

ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์˜ ๊ทœ์น™ ํ™œ์šฉ '=', '-'
  1. ์ผ๋‹จ '='๊ณผ '-'๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฌด์กฐ๊ฑด ์ „์ฒด ๊ธธ์ด์—์„œ 1 ๋งŒํผ ๋นผ์ฃผ๊ณ ,
  2. ๋‚˜๋จธ์ง€ ๊ธฐํ˜ธ๊ฐ€ ์—†๋Š” ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์— ํ•ด๋‹นํ•˜๋Š” 'lj', 'nj', 'dz' ์ด ์„ธ๊ฐ€์ง€ ๊ฒฝ์šฐ๋งŒ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ• 2 - java

string ๋‚ด์žฅํ•จ์ˆ˜ ์‚ฌ์šฉ - java๋กœ ํ’€์—ˆ์„ ๊ฒฝ์šฐ.
  1. string.contains("ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ"); ์œผ๋กœ ๋ฌธ์ž์—ด์— ์•ŒํŒŒ๋ฒณ์ด ์žˆ๋Š”์ง€ ํŒ๋‹จ ํ›„
  2. string.replace("ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ", "#"); ์œผ๋กœ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์„ ๊ณต๋ฐฑ ๋˜๋Š” ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋Œ€์ฒดํ•˜์—ฌ
  3. ๋งˆ์ง€๋ง‰์— ์ „์ฒด ๊ธธ์ด๋ฅผ ์„ธ์–ด ์ถœ๋ ฅํ–ˆ๋‹ค.

c++๋กœ ํ’€์—ˆ์„ ๊ฒฝ์šฐ string.find ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ˜ํ™˜๊ฐ’์ด ์ฒ˜์Œ์œผ๋กœ ์ฐพ์€ ์œ„์น˜์ด๊ณ , string.replace๋Š” ์ธ์ž๋กœ ๋ฒ”์œ„๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— c++์ธ ๊ฒฝ์šฐ ํ˜„์žฌ์ฒ˜๋Ÿผ ํ‘ธ๋Š” ๊ฒƒ์ด ๋ง˜ ํŽธํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๋Œ“๊ธ€