๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm

[๋ฐฑ์ค€/C++] 1316๋ฒˆ : ๊ทธ๋ฃน ๋‹จ์–ด ์ฒด์ปค

by nitronium102 2021. 7. 19.

๋ฌธ์ œ

๊ทธ๋ฃน ๋‹จ์–ด๋ž€ ๋‹จ์–ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์— ๋Œ€ํ•ด์„œ, ๊ฐ ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ๋งŒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ccazzzzbb๋Š” c, a, z, b๊ฐ€ ๋ชจ๋‘ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ณ , kin๋„ k, i, n์ด ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃน ๋‹จ์–ด์ด์ง€๋งŒ, aabbbccb๋Š” b๊ฐ€ ๋–จ์–ด์ ธ์„œ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃน ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋‹ค.

๋‹จ์–ด N๊ฐœ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ๊ทธ๋ฃน ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ๋“ค์–ด์˜จ๋‹ค. N์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜จ๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ๋˜์–ด์žˆ๊ณ  ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฉฐ, ๊ธธ์ด๋Š” ์ตœ๋Œ€ 100์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๊ทธ๋ฃน ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

ํ’€์ด

์ด ๋ฌธ์ œ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์œผ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

<๊ทธ๋ฃน ๋‹จ์–ด๊ฐ€ ์•„๋‹Œ ์กฐ๊ฑด>

01. ์ด์ „ ๋‹จ์–ด์™€ ํ˜„์žฌ ๋‹จ์–ด๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค

02. ํ˜„์žฌ ๋‹จ์–ด๊ฐ€ ์ด์ „์— ๋‚˜์˜จ ์ ์ด ์žˆ๋‹ค.

 

์ด ์กฐ๊ฑด์„ ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

if๋ฌธ : ๋‹จ์–ด ์—ฌ๋ถ€ ์ฒดํฌ(์กฐ๊ฑด 2)

else if๋ฌธ : ์กฐ๊ฑด1๊ณผ ์กฐ๊ฑด2 ์ฒดํฌ 

 

for (int j = 0; j < str.length(); j++)
        {
           idx = str[j] - 97;
            if (alpha[idx] == 0)
                alpha[idx] = 1;
            else if (str[j - 1] != str[j] && alpha[idx] == 1){
                cnt -= 1;
                break;
            }
        }

 

์ตœ์ข… ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

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

int main()
{
    int line, cnt, idx;
    string str;
    int alpha[26];

    cin >> line;
    cnt = line;

    for (int i = 0; i < line; i++)
    {
        cin >> str;
        fill_n(alpha, 26, 0);
        for (int j = 0; j < str.length(); j++)
        {
            idx = str[j] - 97;
            if (alpha[idx] == 0)
                alpha[idx] = 1;
            else if (str[j - 1] != str[j] && alpha[idx] == 1){
                cnt -= 1;
                break;
            }
        }
    }
    cout << cnt;
}

 

๋ฐฐ์—ด ์ดˆ๊ธฐํ™” : fill_n(๋ฐฐ์—ด ์ด๋ฆ„, ๋ฐฐ์—ด ๊ธธ์ด, ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋Š” ๊ฐ’)

์ธ๋ฑ์Šค char->int : ์†Œ๋ฌธ์ž์ผ ๊ฒฝ์šฐ 97์„, ๋Œ€๋ฌธ์ž์ผ ๊ฒฝ์šฐ 65๋ฅผ ๋นผ์ค€๋‹ค.

 

bool์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•

https://jaynamm.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-1316%EB%B2%88-%EA%B7%B8%EB%A3%B9-%EB%8B%A8%EC%96%B4-%EC%B2%B4%EC%BB%A4

 

[๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜] 1316๋ฒˆ : ๊ทธ๋ฃน ๋‹จ์–ด ์ฒด์ปค

๋ฌธ์ œ ๊ทธ๋ฃน ๋‹จ์–ด๋ž€ ๋‹จ์–ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์— ๋Œ€ํ•ด์„œ, ๊ฐ ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ๋งŒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ccazzzzbb๋Š” c, a, z, b๊ฐ€ ๋ชจ๋‘ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ณ , kin๋„ k, i, n์ด ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜

jaynamm.tistory.com

 

๋Œ“๊ธ€