kkw564   11달 전

쉽다고 생각했는데 5번틀렸습니다 뜨니 틀린곳도 못찾겠네요..


도와주세요

teram   11달 전

AAAAAAAAAAAAAAAAAAAAAAAAAABCDEFGHIJKLMNOPQRSTUVW

를 넣어보세요

kkw564   11달 전

for(j = 0 ; j <= 25 ; j++)
이부분이 잘못된것같아
for(j = 0 ; alpha[j] != '\0' ; j++)

라고 수정을했습니다.

그래서 다시 돌려보니 되긴하는데 또 틀렸습니다가 뜨네요.

어느부분이 지금 잘못된지 감이 잘안잡힙니다.

teram   11달 전

42번째 line 말씀하시는 거 맞죠?

말씀하신대로 고치니 억셉이 되는데요...


check 배열 초기화 시에 인덱스 범위가 잘못되긴 했는데 (j < 30)

이거때문에 다른 변수값을 건드렸을 수도 있을거 같습니다.

kkw564   11달 전

#include <stdio.h>

int main()
{
 char alpha[1001];
 int check[30];
 int n,i = 0;
 int j = 0,ans = 2015;
 
 scanf("%d",&n);
 

 
 for(i = 0 ; i < n ; i ++)
 {
  for(j = 0 ; alpha[j] != '\0' ; j++)
  { 
    alpha[j] = '\0';
  }   // alpha[] 초기화      
       
  for(j = 0 ; j <= 30 ; j++)
  { 
    check[j] = 0;
  }   // check[] 초기화    
     
  scanf("%s",alpha);
  
  ans = 2015;
  
  for(j = 0 ; alpha[j] != '\0' ; j++)
  {     
   
   if(check[alpha[j]-65] == 1){}
   
   else if(check[alpha[j]-65] != 1)
   {   
    check[alpha[j]-65] = alpha[j]; // a면 check[0]에 b면 check[1]에 a,b에 해당하는 아스키 값 넣어준다.
   }
   
  }   
  
  for(j = 0 ; alpha[j] != '\0' ; j++)
  {
   if(check[alpha[j]-65] >= 65 && check[alpha[j]-65] <= 90)
   {
      ans = ans - check[alpha[j]-65];  
      
      check[alpha[j]-65] = 0; // 값을 처리 했다는 표시                   
   }
  
  }
  printf("%d\n",ans);
  
 }    
 
 return 0;
}


이코드가 통과되셧다는 말씀인가요??


저는 왜 안되지..ㅠㅠ

teram   11달 전

확인해보니 check 배열 초기화 시 인덱스 초과하는 게 문제가 맞네요.

game2k   11달 전

for(j = 0 ; j <= 30 ; j++)
  { 
    check[j] = 0;
  }   // check[] 초기화

for(j = 0 ; j < 30 ; j++)
  { 
    check[j] = 0;
  }   // check[] 초기화

로 해보세요

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