๋ฐฑ์ค 1316๋ฒ : https://www.acmicpc.net/problem/1260
โ ๋ฌธ์ ์ค๋ช
๊ทธ๋ฃน๋จ์ด๋ ๋จ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์์ ๋ํด์ ๊ฐ ๋ฌธ์๊ฐ ์ฐ์ํด์ ๋ํ๋ ๊ฒฝ์ฐ๋ง์ ๋งํ๋ค.
ccazzzzbb๋ c,a,z,b๊ฐ ๋ชจ๋ ์ฐ์์ ์ผ๋ก ๋ํ๋๋ฉฐ,
kin๋ ํ๋์ฉ์ด์ง๋ง k,i,n์ด ๋ชจ๋ ์ฐ์ํด์ ๋์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฃน๋จ์ด๋ก ๋ณผ ์ ์๋ค.
๊ทธ๋ฌ๋ aaccbbc๋ c๊ฐ ๋จ์ด์ ธ์ ๋ํ๋ฌ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฃน๋จ์ด๊ฐ ์๋๋ค.
โ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช
1. ์ํ๋ฒณ 26๊ฐ๋ฅผ ํ์ธํ๋ ๋ฐฐ์ด์ ๋ง๋ ๋ค.
2. ์ ๋ ฅ๋ฐ์ ๋จ์ด์ ๊ธธ์ด๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฐ๋ค.
-1) ๋์๋ ๋ฌธ์์ธ์ง ํ์ธํ๋ค.
-2) ๋์๋ ๋ฌธ์๋ผ๋ฉด ๋ฐ๋ก ์ ๋ฌธ์์ ๊ฐ์์ง ํ์ธํ์ฌ, ์๋๋ฉด ๊ทธ๋ฃน ๋จ์ด๊ฐ ์๋๋ผ๊ณ ์ฒดํฌํจ
-3) ๋์๋ ๋ฌธ์๊ฐ ์๋๋ผ๋ฉด alpha ๋ฐฐ์ด์์ ํด๋น ๋จ์ด๋ฅผ ๋์๋ค๊ณ ๋ฐ๊พผ ํ ๋ค์ ๋จ์ด ํ์
3. ๋จ์ด์ ๊ฐ์๋งํผ 2๋ฒ ๋ฐ๋ณต
โ ์ฝ๋
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
int main(void) {
int n, cnt = 0;
scanf("%d", &n); // ๋จ์ด์ ๊ฐ์ ์
๋ ฅ
/* ๋จ์ด์ ๊ฐ์๋งํผ ๋ฐ๋ณต๋ฌธ */
for (int i = 0; i < n; i++) {
char word[101];
scanf("%s", word); // ๋จ์ด ์
๋ ฅ
int alpha[26] = { 0, }; // ๋์๋ ๋ฌธ์์ธ์ง ํ๋จํ๊ธฐ ์ํด
int flag = 0;
for (int j = 0; j < strlen(word); j++) {
if (alpha[word[j] - 'a'] == 1) { // ์ด๋ฏธ ๋์๋ ๋ฌธ์๋ผ๋ฉด
if (word[j] != word[j - 1]) { // ๋ฐ๋ก ์ ๋ฌธ์์ ๊ฐ์ง ์๋ค๋ฉด
flag = 1; // ๊ทธ๋ฃน ๋จ์ด ์๋๊ธฐ ๋๋ฌธ์ ํ์ถ
break;
}
}
else alpha[word[j] - 'a'] = 1; // ๋์จ ๋ฌธ์๋ผ๊ณ ๋ฐ๊พธ๊ธฐ
}
if (flag == 0) // ๊ทธ๋ฃน๋จ์ด๋ผ๋ฉด cnt++
cnt++;
}
printf("%d\n", cnt);
return 0;
}
โก alpha[ word[j] - ‘a’ ] = 1์ด ์๋ฏธํ๋ ๊ฒ์?
: ํด๋น ๋ฌธ์ ์์ ๋จ์ด๋ ์๋ฌธ์๋ก๋ง ์ด๋ค์ก๋ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์.
ex) banana => word[0] = ‘b’
- word[0] - ‘a’ = ‘b’ - ‘a’
: ์์คํค์ฝ๋ ๊ฐ์ผ๋ก 98 – 97 = 1์ด ๋์ด
- alpha[1] == ‘b’
: alpha[1] = 1๋ก ๋ฐ๊ฟ ๋์๋ ๋จ์ด๋ผ๊ณ ํ์ํจ
https://github.com/2hyunjinn/Baekjoon/blob/main/Baekjoon_1316.cpp
'๐ STUDY > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C / C++] ๋ฐฑ์ค 2884๋ฒ - ์๋์๊ณ (0) | 2022.03.21 |
---|---|
[C / C++] ๋ฐฑ์ค 2446๋ฒ - ๋ณ์ฐ๊ธฐ_9 (0) | 2022.03.21 |
[C / C++] ๋ฐฑ์ค 1260๋ฒ - DFS ์ BFS (0) | 2022.03.19 |
[C / C++] ๋ฐฑ์ค 1152๋ฒ - ๋จ์ด์ ๊ฐ์ (0) | 2022.03.19 |
[C / C++] ๋ฐฑ์ค 1110๋ฒ - ๋ํ๊ธฐ ์ฌ์ดํด (0) | 2022.03.14 |