회원가입
로그인
Toggle navigation
문제
문제
전체 문제
문제 출처
단계별로 풀어보기
알고리즘 분류
추가된 문제
문제 순위
문제
푼 사람이 한 명인 문제
아무도 못 푼 문제
최근 제출된 문제
최근 풀린 문제
랜덤
출처
ICPC
Olympiad
한국정보올림피아드
한국정보올림피아드시․도지역본선
전국 대학생 프로그래밍 대회 동아리 연합
대학교 대회
카카오 코드 페스티벌
Coder's High
ICPC
Regionals
World Finals
Korea Regional
Africa and the Middle East Regionals
Europe Regionals
Latin America Regionals
North America Regionals
South Pacific Regionals
문제집
대회
2
채점 현황
랭킹
게시판
그룹
더 보기
재채점 기록
블로그
강의
실험실
도움말
BOJ Stack
BOJ Book
전체
공지
자유
질문
오타/오역/요청
게시판 공지
홍보
업데이트
solved.ac
글쓰기
질문 도움말
자주묻는 질문
C언어 반례나 오류질문이요
1316번 - 그룹 단어 체커
potocanon1234
2년 전
0
예제는 다 맞구요 틀렸다 뜹니다! 오류나 반례찾아 주시면 감사하겠습니다!
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> int Check_GroupNum(char* p, int len); int main() { int N;//그룹 단어의 개수 int cnt_groupnum=0; scanf("%d", &N); char a[102] = { 0 }; //길이는 최대 100이다. getchar(); for (int i = 0; i < N; i++) { fgets(a, sizeof(a), stdin); a[strlen(a) - 1] = '\0'; char* p = (char*)malloc((strlen(a)+1) * sizeof(char)); if (p == NULL) exit(1); strcpy(p, a); if (Check_GroupNum(p, strlen(a)) == 1) cnt_groupnum++; free(p); } printf("%d\n", cnt_groupnum); return 0; } int Check_GroupNum(char* p, int len) {//len은 실제 p배열에 저장된 문자열의 글자수(\n도 제외) //제공된 문자열에 각 문자가 몇개씩 있는지 //해당 문자가 문자열에 있는 개수가 0개가 아니라면 //문자가 첫번쨰로 나온 시점에서 변수에 숫자1을 주고 문자의 개수 만큼 뒤로 넘어간다 //만일 중간에 다른 문자가 있을경우 break int alphabet[26] = { 0 };//0부터 각각 a,b,c...알파벳에 대응 for (int i = 0; i < 26; i++) {//알파벳은 26글자,알파벳 순환 for (int j = 0; j < len; j++) {//문자열 입력은 소문자만 입력이 조건, 0은 a와 대응이니 0+97을 해서 아스키 코드 a만듬 if (i + 97 == p[j])//해당 문자열에 각각의 알파벳 개수 확인 alphabet[i]++; //제공된 문자열에 포함된 알파벳은 alphabet배열의 각 대응 요소가 0이 아닐 것 } } int start = -1; for (int i = 0; i < 26; i++) { int check = 1;//그룹문자인지 확인 위한 변수 if (alphabet[i] != 0) {//해당 문자가 문자열에 존재! int cnt = 0; if (i + 97 == p[cnt]) { if (start != -1) break; else start = cnt; for (int j = 0; j < alphabet[i]; j++) { if (i + 97 == p[start + j]) continue; else return 0; } } cnt++; } } return 1; }
댓글을 작성하려면
로그인
해야 합니다.
potocanon1234 2년 전
예제는 다 맞구요 틀렸다 뜹니다! 오류나 반례찾아 주시면 감사하겠습니다!