✅ 이번 과제에서는 스택에 있는 데이터를 한정된 명령어를 이용하여 최대한 적은 횟수 내에 정렬하는 것을 목표로 합니다. 성공하기 위해서는 다양한 정렬 알고리즘을 조작해 보고, 최적화된 데이터 정렬에 가장 적합한 알고리즘을 선택하여야 합니다.
Subject 해석
- 정수 값 세트, 스택 2개, 명령어 세트를 마음대로 사용할 수 있습니다. 두 스택을 모두 조작합니다.
- 인수로 받은 정수를 정렬하는 프로그램
# 실행 방식
$>./push_swap 2 1 3 6 5 8
sa
pb
pb
pb
sa
pa
pa
pa
$>./push_swap 0 one 2 3
Error
$>
argv 파싱하기
파싱하기
- [x] 일단 들어온거 다 “ “으로 join하기
- [x] 스페이스 기준 split 하기
인자 에러처리
- [x] 자른거 숫자로 바꿔서 배열에 담기
- [x] 숫자 / - 아니면 에러
- [x] 중복되면 에러
- [x] integer values 가 아니면 에러 (-2147483648 ~ 2147483nt647) → atoi에 추가 ???? 문자열인데 :bool overflow
- [x] 가장 큰 수 기준으로 인덱스 번호 메기기 → ??? 이걸 어케해야함
- [x] 받은거 배열, 정렬한 배열, 정렬기준 인덱스 배열 .. 3개 지정 ??
- [x] 요기서.. 배열에 담는거 못하겠음
- [x] 일단 담고 싹다 b로 보내서 a에 차곡차곡 → 이러면 횟수 넘을듯..
모래시계 알고리즘이란 무엇인가.. 이것을 다시 이해해보자
개발 순서
- [x] 양방향 링크드리스트 만들기
- [x] main에서 인자값을 입력받을 수 있게 만들기
- [x] 비어있을때, 인자가 숫자가 아닐때, 과제의 요구사항에 맞춰 예외처리 하기
- [x] 링크드리스트에 데이터 담기