#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i, j; // Index variable
int T; // Total test case
int case; // number of test case
int num;
int * input;
int * count;
char alph;
char * p = &alph;
char * temp;
int result = -1;
setbuf(stdout, NULL);
scanf("%d", &T);
for(case = 1; case <= T; case++, result = -1) {
// 이 부분에서 알고리즘 프로그램을 작성하십시오.
scanf("%d\n", &num);
input = (int *)malloc(sizeof(int) * num);
count = (int *)malloc(sizeof(int) * num);
temp = (char *)malloc(sizeof(char) * ((num-1)*2+1) + 1);
for(i = 0; i < num; i++) {
count[i] = 0;
}
gets(temp);
for(i = 0; i < num; i++) {
alph = temp[2*i];
input[i] = atoi(p);
for(j = 0; j < i + 1; j++) {
if(i == j || input[j] == input[i]) {
count[j] ++;
break;
}
}
}
for(i = 0; i < num; i++) {
if(count[i] % 2 == 1) {
if(result == -1) {
result = input[i];
}
else {
result = result ^ input[i];
}
}
}
// 이 부분에서 정답을 출력하십시오.
printf("Case #%d\n", test_case);
printf("%d\n", result);
free(temp);
free(count);
free(input);
}
return 0; // 정상종료 시 반드시 0을 리턴해야 합니다.
}
일단 위에가 내 코드고... 검색해서 다른 정답들 보니까 일단 배열을 선언하는거 자체가 일단 병신인 것 같네
XOR 연산의 특징(X^0=X)을 간과해서 저런식으로 짯는데
아무튼 위 코드 돌려보면 알겠지만 어쨋든 답은 맞게 나오는데 왜 틀렸다고 그럴까?
그쪽이 의도한거랑 다르게 하면 무조건 틀렸다고 하는건가?
아니면 문제 발견되면 지적좀... 코드 병신인거 암 ㅎㅎㅎ
컴퓨터는 거짓말을 하지 않습니다
알고리즘 안해본 티 내 지 마시고 틀린 test case 찾아서 고치시길
그렇게 해서 못찾겠으니 여기 올리는거죠
ㅠㅠ....비쥬얼 스튜디오 상에서 테스트 케이스를 확인했을 때는 제대로 된 결과가 나와서 묻는겁니다....
테스트케이스가 한두개가 아입니다
int compare(const void *first, const void *second){ if (*(int*)first > *(int*)second) return 1; else if (*(int*)first < *(int*)second) return -1; else return 0;}int numbers[3000001];
int l, answer; int num; int i; scanf("%d\n", &l); for (i = 0; i < l; i++) { scanf("%d", &numbers;[i]); }
시발 코드 올리는거 막아놔서 못함
최근대박yang빵 정보! 월천club 쉽다! ㅌ nete77
이거 a^a = 0 이라서 짝수개 나오는 숫자들은 다 0이 되니까 그냥 맘 놓고 모든 수를 xor 하면 됨