-
[๋ฐฑ์ค(BOJ)] 1157๋ฒ ๋จ์ด ๊ณต๋ถ, C์ธ์ด ํ์ดPS(Problem Solving)/C 2020. 7. 4. 00:15๋ฐ์ํ
<๋จ์ด ๊ณต๋ถ>, 1157๋ฒ
๋ฌธ์
์ํ๋ฒณ ๋์๋ฌธ์๋ก ๋ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ฉด, ์ด ๋จ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ด ๋ฌด์์ธ์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋จ์ด์ ๊ธธ์ด๋ 1,000,000์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ด ๋จ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก ์ถ๋ ฅํ๋ค. ๋จ, ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ?๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
Mississipi
์์ ์ถ๋ ฅ 1
?
์์ ์ ๋ ฅ 2
zZa
์์ ์ถ๋ ฅ 2
Z
์์ ์ ๋ ฅ 3
z
์์ ์ถ๋ ฅ 3
Z
์์ ์ ๋ ฅ 4
baaa
์์ ์ถ๋ ฅ 4
A
ํ์ด
์ด ๋ฌธ์ ๋ ์ํ๋ฒณ ๋๋ฌธ์์ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๋ฅผ ์ ๋ ฅํด์ ๊ฐ์ฅ ๋ง์ด ๋์จ ์ํ๋ฒณ์ด ์ ํด์ ธ ์๋ค๋ฉด ๊ทธ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก ์ถ๋ ฅํ๊ณ , ๊ฐ์ฅ ๋ง์ด ๋์จ ์ํ๋ฒณ์ ๊ฐ์๊ฐ ์ฌ๋ฌ๊ฐ๋ผ๋ฉด ?๋ฅผ ์ถ๋ ฅํ๋ ์์ค์ฝ๋๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
๋๋ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๋ฐฐ์ดa์ ์ ์ฅํ๊ณ , asize ๋ณ์๋ก ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ while๋ฌธ์ ์ด์ฉํด NULL๊ฐ์ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ฅ๋ ๋ฌธ์์ด์ ๊ธธ์ด๋งํผ for๋ฌธ์ ๋๋ฆฐ ํ ์ด์ค for๋ฌธ์ ์ฌ์ฉํด ์ ๋ ฅ๋ ๋ฌธ์์ด์์ ์๋ฌธ์์ ๋๋ฌธ์์ ์ํ๋ฒณ์ ์์คํค ์ฝ๋๋ฅผ ์ด์ฉํด count ๋ฐฐ์ด์ ์ํ๋ฒณ ์์๋๋ก ์ ์ฅํด์ ์ ๋ ฅ๋ ์ํ๋ฒณ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ๊ทธ ์ดํ count ๋ฐฐ์ด์ ์ต๋๋ก ์ ์ฅ๋ ๊ฐ์ ๊ตฌํ๊ณ , ๊ทธ ์ต๋ ์ง์ ์ A์ ์์คํค ์ฝ๋์ธ 65๋ฅผ ๋ํด์ค์ผ๋ก ๋ต์ ์ถ๋ ฅํ๋ค. ๋ฌธ์ ์ ์ถ๊ฐ์กฐ๊ฑด์ผ๋ก ์ ๋ ฅ๋ ์ํ๋ฒณ์ ๊ฐ์๊ฐ aabb์ ๊ฐ์ด a๊ฐ 2๋ฒ, b๊ฐ 2๋ฒ ์ฌ์ฉ๋ ๊ฒฝ์ฐ์๋ ?๋ฅผ ์ถ๋ ฅํด์ผ ํด์ count ๋ฐฐ์ด์ for๋ฌธ์ ๋๋ ค ์ต๋๊ฐ๊ณผ count ๋ฐฐ์ด์์ ๊ฐ์ ๊ฒ์ด ์๋ค๋ฉด check ๋ณ์๋ฅผ ๋ํด์ฃผ๋๋ก ํด์ ์ต์ข ์ ์ผ๋ก if๋ฌธ์ ์ด์ฉํด ๋ต์ ์ถ๋ ฅํ๋ค.
์์ค์ฝ๋
#include <stdio.h> // ๋ฌธ์์ด, <๋จ์ด ๊ณต๋ถ> int main(void) { char a[1000000]; int asize = 0; int count[26] = { 0 }; int check = 0, max = 0, idx = 0; scanf("%s", a); while (a[asize] != '\0') asize++; for (int i = 0; i < asize; i++) for (int j = 'a'; j <= 'z'; j++) if (a[i] == j) count[a[i] - 'a']++; for (int i = 0; i < asize; i++) for (int j = 'A'; j <= 'Z'; j++) if (a[i] == j) count[a[i] - 'A']++; for (int i = 0; i < 26; i++) { if (max < count[i]) { max = count[i]; idx = i; } } for (int i = 0; i < 26; i++) { if (max == count[i]) { check++; } } if (check > 1) printf("?"); else printf("%c", idx + 'A'); return 0; }
๋ฐ์ํ