cataddict   6년 전

뭐가 틀린건가요??? 그리고

for (int i = 0; i < 26; i++)
{
if (loc[i] > big)
{
big = loc[i];
n = i;
}

}
for (int i = 0; i < 26; i++)
{
if (loc[i] == big)
{
cnt++;
if (cnt >= 2)
{
cout << "?" << '\n';

이부분을 어떻게 해석해야할지 잘 모르겠어요 ㅜㅠ  도와주세요;;


djm03178   6년 전

코드를 다시 올려주세요. 중간에 한 덩어리가 없는 거 같네요.

cataddict   6년 전

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

int main() {
int cnt = 0, big = 0, a, b, c;
int loc[26];
string word;
cin >> word;

for (int i = 0; i < word.size(); i++)
{
b = word[i];
if (b >= 65 && b <= 90)
{
loc[b - 65]++;
}
else if (b >= 97 && b <= 122)
{
loc[b - 97]++;
}
}
for (int i = 0; i < 26; i++)
{
c = loc[i];
if (c > big)
{
big = c;
a = i;
}

}
for (int i = 0; i < 26; i++)
{
if (c == big)
{
cnt++;
if (cnt >= 2)
{
cout << "?" << '\n';
return 0;
}
}
}
cout << (char)(a + 65);
}


죄송합니다 ㅜㅠ

djm03178   6년 전

1. loc는 처음에 모두 0으로 초기화를 해야 됩니다.

2. if (c == big) 가 아니라 if (loc[i] == big) 여야 합니다.

3. 맨 위에 올려주신 부분은 전체 알파벳 중에 가장 많이 등장한 알파벳이 "몇 개"(big)인지를 찾아내고, 다시 처음부터 보면서 그 "몇 개"만큼 등장한 알파벳이 있을 때마다 cnt를 증가시켜서, "몇 개"인 알파벳이 둘 이상이면 물음표를 출력하게 하는 코드입니다.

cataddict   6년 전

오!! 감사합니다 ~!


댓글을 작성하려면 로그인해야 합니다.