728x90
반응형
소스코드
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int alphabet[27];
int answer;//결과 값 저장
void init();//초기화 및 초기입력
int main(int argc, char** argv)
{
int test_case;
int T;
scanf("%d", &T);
for (test_case = 1; test_case <= T; ++test_case)
{
init();
printf("#%d %s\n", test_case, answer == 2 ? "Yes" : "No");
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
void init() {
answer = 0;
memset(alphabet, 0, sizeof(alphabet));
for (int i = 0; i < 4; i++) {
char alpha;
scanf(" %c", &alpha);
alphabet[alpha - 'A']++;
}
//cout << 'Z' - 'A' << endl;
for (int i = 0; i < 27; i++) {
if (alphabet[i] == 2) {
answer++;
}
}
}
설계
- 진짜 어려운것 없이 이렇게 하는게 효율적인지는 모르겠지만
- 26개인가 알파벳이 있으면 그것을 그냥 배열에 담는다
- 담을때 A가 0인 인덱스가 될수 있도록 -'A'를 빼주면 된다.
- 그렇게 해서 문자열을 숫자로 변환 할 수 있는지 포인트를 주면 좋을것 같다
- 결과의 경우 그냥 2개인 수가 2개가 있는지 판별하면 된다.
- 이경우 입력으로 주어지는 값이 작기 때문에 완전 탐색으로 전부 확인해도 상관 없음
실수
- 출력이 Yes, No인데 YES, NO라고 해서 한번 틀림
- 이런 경우는 팁은 그냥 출력으로 주어지는거 화면에서 복붙하면 틀리는 경우 없음
- 사람이 습관적으로 익숙한 단어가 나오면 자기가 편한걸 치기 때문에 조심해야함
문제 링크
원본
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
2021.10.21_10505-소득불균형 (0) | 2021.10.21 |
---|---|
21.10.20_11315-오목판정 (0) | 2021.10.21 |
2021.10.19_12004-구구단1 (0) | 2021.10.19 |
21.10.19_12221-구구단2 (0) | 2021.10.19 |
2021.10.19_12368-24시간 (0) | 2021.10.19 |
댓글