TIL
2021 06 03 (목) 본문
20210603(목)
1. 학습 날짜 : 20210603(목)
2. 학습 시간 : 13:00 ~
3. 학습 주제 : push_swap 마무리
4. 동료 학습 방법 : 개인
5. 학습 목표 : push_swap 마무리, 평가
- Mandatory :
- sort_a, sort_b norm
- mandatory 추가
- ruby 명령어 정리
- Error처리 생각하기 -
- Stderr에 출력했는가?
- Error를 띄우는 경우를 생각해보고, 잘못처리된 부분이 존재하는지 생각해보기.
- 인자가 하나만 들어왔을 때의 처리..?
- Bonus
- checker 프로그램 요구사항 분석
- checker 프로그램 만들기
- 테스터기 돌려보기
6. 학습 내용 :
Checker 에 명령어를 넣어줄 때의 RUBY 명령어 :
ARG=`ruby -e "puts (0..10).to_a.shuffle.join(' ')"`; ./push_swap $ARG
- ARG : 환경변수
ruby -e
: ruby 명령어를 command에서 실행하도록 한다.- ruby 명령어 :
puts (0..10).to_a.shuffle.join(' ')
:puts
: 출력 명령어(a..b)
: ruby 문법. - splat.to_a
: to_array 인듯싶고, shuffle한 뒤에space
를 join시키는듯.
정리하면, ARG=[rand*k* ., rand*1*.., rand*n*] ;
./push_swap $(ARG)
.
Checker 프로그램 요구사항 분석
- argument 가 들어오지 않았을 때. Displays nothing
- list of integers를 인자로 받는다.
- stdin의 명령어를 읽어들인 뒤, 해당 명령어를 실행시킨다.
- Stack_a가 sorted 되어있고, stack_b가 empty일 때,
OK\n
출력 - 그렇지 않다면, "KO\n"
Error가 뜬다면, Error
를 입력해야한다.Error
를 출력해야할 경우:- list of integers 중 한 원소가 integer가 아닐 경우
- list of integers의 값이 Integer보다 클 경우
- duplicates가 존재할 경우
- stdin에서 받은 명령어가 존재하지 않는 명령어일 경우.
- 이미 정렬된 경우의 checker의 평가는..?
- 유효한 매개변수를 사용하여 검사기를 실행하고 명령단계에서 작업전/후에 하나 또는 여러공백을 사용하여 작업을작성합니다
- get_next_line으로 stdin에서 읽어온 명령어가 비어있을 때..?newline 전까지 읽기 때문에 아마
'\0'
을 리턴하지 않을까... - 확인해본 결과, gnl은 newline 전까지 읽어 null을 리턴한다.
- ⁉️ : get_next_line으로
\n
만 읽어올 수 있나..?
- get_next_line으로 stdin에서 읽어온 명령어가 비어있을 때..?newline 전까지 읽기 때문에 아마
- 프로그램 실행 도중 ctrl + D 키를 눌러 진행하는데, 왜 ctrl + D를 눌러 진행하는지 알 수 없다.
- ctrl + D키를 눌러 평가를 진행하는 이유?
checker를 위해 만들 함수들 :
- stdin에서 명령어를 읽어옴.
- 유효한 명령어인지 판별함수
is_valid_instruction
- 결과 판별 하여 결과 출력 함수 :
print_result
checker 요구사항 평가
- argument 가 들어오지 않았을 때. Displays nothing
- list of integers를 인자로 받는다.
- stdin의 명령어를 읽어들인 뒤, 해당 명령어를 실행시킨다.
- Stack_a가 sorted 되어있고, stack_b가 empty일 때,
OK\n
출력 - 그렇지 않다면, "KO\n"
- Error가 뜬다면,
Error\n
를 띄워야한다. -
Error\n
를 출력해야할 경우:- list of integers 중 한 원소가 integer가 아닐 경우
- list of integers의 값이 Integer보다 클 경우
- duplicates가 존재할 경우
- stdin에서 받은 명령어가 존재하지 않는 명령어일 경우.
- 이미 정렬된 경우의 checker의 평가는..?
- 유효한 매개변수를 사용하여 검사기를 실행하고 명령단계에서 작업전/후에 하나 또는 여러공백을 사용하여 작업을작성합니다
- get_next_line으로 stdin에서 읽어온 명령어가 비어있을 때..?newline 전까지 읽기 때문에 아마
'\0'
을 리턴하지 않을까... - 확인해본 결과, gnl은 newline 전까지 읽어 null을 리턴한다.
- ⁉️ : get_next_line으로
\n
만 읽어올 수 있나..?
- get_next_line으로 stdin에서 읽어온 명령어가 비어있을 때..?newline 전까지 읽기 때문에 아마
- 프로그램 실행 도중 ctrl + D 키를 눌러 진행하는데, 왜 ctrl + D를 눌러 진행하는지 알 수 없다.
- ctrl + D키를 눌러 평가를 진행하는 이유?
- stdin의 버퍼입력을 중단받기 때문.
'2021 > 일일 기록' 카테고리의 다른 글
push_swap 평가 (0) | 2021.06.05 |
---|---|
피드백 요소 (0) | 2021.06.05 |
2021 06 02(화) (0) | 2021.06.05 |
2021 06 01 (화) (0) | 2021.06.02 |
2021 05 31(월) (0) | 2021.06.01 |
Comments