파일 입출력을 이용한 정렬 알고리즘
아잉형님
질문 제목 : 파일 입출력을 이용한 정렬 알고리즘부끄럽지만 파일 입출력에 대한 개념이 거의 없는 상태라서 이런 응용문제를 접근 자체를 못하겠네요.질문 내용 :
입력데이터는 input.txt라는 이름의 영문 텍스트 파일이다. 프로그램은 먼저 텍스트 파일을 읽어서 모든 단어들을 하나의 배열에 저장한다. 동일 단어가 중복 등장할 때에도 제거하지 않고 모두 저장한다. 단어의 맨 앞이나 끝에 붙어있는 마침표, 쉼표 따옴표, 숫자 등의 기호들은 모두 제거하고, 모든 대문자는 소문자로 바꾼다. 단어의 중간에 영어 알파벳이 아닌 특수문자나 숫자가 포함된 단어들은 무시한다. 입력파일의 길이는 최대 100,000단어라고 가정하고, 한 단어의 길이는 최대 20문자라고 가정한다. 만약 입력 파일에 길이가 20을 초과하는 단어가 등장하면 이는 무시한다.
프로그램은 배열에 저장된 단어들을 (bubble, selection, insertion, merge, heap, quick, radix) 정렬들을 차례대로 적용하여 정렬을 한 후, 각 정렬별로 소요된 시간을 측정하여 이를 output.txt라는 이름의 파일에 요약하여 출력한다. 정렬된 결과는 sorted.txt라는 이름의 별개의 파일에 한 줄에 한 단어씩 출력한다. 정렬된 결과는 한 번만 출력한다.
sample.txt라는 파일이 있습니다.(내용은 영어로 된 간단한 만담 or 소설) 이 파일을 *fp=fopen(sam~, r); 로 읽어 오는것 까지 밖에 이해를 못하겠네요.
이 읽은 파일에 단어들을 하나의 배열에 저장하는 법을 fscanf()로 생각해보았는데 위에 설명에 나오듯이 조건이 붙습니다.
이렇게 되니 if문이나 while문 같은 조건문을 어떻게 써야 할지 감이 잡히질 않네요..
뭔가 글 솜씨가 없어 지저분하게 질문글을 올린거 같아서 죄송하지만.. 일단.. 제일 이해가 필요한 부분은..
프로그램은 먼저 텍스트 파일을 읽어서 모든 단어들을 하나의 배열에 저장한다. 동일 단어가 중복 등장할 때에도 제거하지 않고 모두 저장한다. 단어의 맨 앞이나 끝에 붙어있는 마침표, 쉼표 따옴표, 숫자 등의 기호들은 모두 제거하고, 모든 대문자는 소문자로 바꾼다. 단어의 중간에 영어 알파벳이 아닌 특수문자나 숫자가 포함된 단어들은 무시한다. 입력파일의 길이는 최대 100,000단어라고 가정하고, 한 단어의 길이는 최대 20문자라고 가정한다. 만약 입력 파일에 길이가 20을 초과하는 단어가 등장하면 이는 무시한다.
여기서 배열에 저장할때 a[100000] 에 저장을 한다고 가정하면 조건을 어떻게 주어야 할지 모르겠습니다..
조언 부탁드립니다..
sample 파일은 첨부하였습니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676182 | 숫자 순서대로 배열하는법 | 권뉴 | 2024-11-24 |
2676152 | 기본적인거 하나 질문드립니다. | 개미 | 2024-11-24 |
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |