BROKENKEY에서 line입력을 받을 때 문제 restart 문제 링크 BROKENKEY int chk = 0; for(int i=0; i<N; i++){ fgets(buf, 1024, stdin ); but[i] = 0; int l = strlen( buf ); for( int c=0; c<l; c++ ){ char it = buf[c]; if( it == ' ' ) but[i] |= 1<<('z' - 'a' + 1), chk++; else if( it == '.' ) but[i] |= 1<<('z' - 'a' + 2), chk++; else if( 'a' <= it && it <= 'z' ) but[i] |= 1<<(it - 'a'), chk++; } } assert( chk == 28 ); 문제 해결 자체의 로직은 어렵지 않은데, 입력에서 N줄에 들어온 문자들을 받아오는데서 죽어도 밑에 assert를 통과하지 못하네요ㅠㅠ getline도 써보고, fgets도 써보고.. 정답자가 존재하는 걸 보면 입력데이터 문제는 아닌 것 같고ㅜㅜ 제가 모르는 어떤 오류가 있는걸까요?ㅠㅠ 9년 전
3개의 댓글이 있습니다. seirion for 문의 첫 번째 fgets 한 직후에 buf 에 뭐가 읽어졌는 지 확인 해 보세요. 9년 전 link restart '\n'이 딸려오는 문제라면 인식하고 있는데, case에 다 조건문을 걸어줬으니 정상작동 할 것 같고, gets나 getline도 똑같이 assertion fail이 일어나는 게 영문을 모르겠습니다ㅠㅠ 물론 예제데이터는 정상입력 받고요.. 9년 전 link restart 음.. '\n'만 받아지는 문제라면 T, N, M, S가 들어오는 줄도 전부 line입력으로 처리했었습니다ㅠㅠ 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
restart
문제 링크 BROKENKEY
문제 해결 자체의 로직은 어렵지 않은데, 입력에서 N줄에 들어온 문자들을 받아오는데서 죽어도 밑에 assert를 통과하지 못하네요ㅠㅠ
getline도 써보고, fgets도 써보고.. 정답자가 존재하는 걸 보면 입력데이터 문제는 아닌 것 같고ㅜㅜ 제가 모르는 어떤 오류가 있는걸까요?ㅠㅠ
9년 전