이터레이터 조작하다가 댕글링 포인터 버그가 생기는 경우 같은데 잘 안보이네요
그거랑 별개로 자료구조 선택에 잘못된 판단을 한 것 같아서 조언을 드릴게요
벡터는 베이스 주소가 고정되어있어서 begin()에서 erase하면 나머지 요소들을 다 한칸씩 당겨와서 복사하게됩니다. 굉장히 비효율적이에요
벡터 대신 양방향에서 입출력을 O(1)에 할 수 있는 deque을 사용하세요
5430번 - AC
이터레이터 조작하다가 댕글링 포인터 버그가 생기는 경우 같은데 잘 안보이네요
그거랑 별개로 자료구조 선택에 잘못된 판단을 한 것 같아서 조언을 드릴게요
벡터는 베이스 주소가 고정되어있어서 begin()에서 erase하면 나머지 요소들을 다 한칸씩 당겨와서 복사하게됩니다. 굉장히 비효율적이에요
벡터 대신 양방향에서 입출력을 O(1)에 할 수 있는 deque을 사용하세요
예제를 복붙해서 넣었을때 런타임에러가 뜬다면 데이터 입력 받는 부분이 잘못된건데 36번 라인에서 런타임 에러가 발생할 가능성이 높아보이네요
브레이크포인트 걸어두고 36번라인 실행하기 전에 arr_str이 정수타입으로 변환이 가능한 문자열이 들어가 있는지 확인해보시면 좋을 것 같습니다
댓글을 작성하려면 로그인해야 합니다.
jyg0599 4년 전
예제를 통째로 복사붙여넣기하면 런타임 에러가 뜨는데
한 줄씩 입력하면 결과가 잘 나옵니다. 뭐가 문제인 건지 알려주시면 감사하겠습니다.
코드 로직은 이렇습니다.
1) n개만큼의 배열에 들어갈 수를 파싱하여 벡터에 입력
2) R_check 변수를 이용하여 R이 나올때마다 ++연산을 해주고
짝/ 홀인 경우로 나눠 iterator / reverse_iterator를 이용하여 벡터의 원소를 erase해줌
3) err_check 변수를 이용하여 error 체크 후
4) 조건에 맞춰 결과 출력
어디서 런타임 에러 나는지랑 반례가 혹시 있다면 알려주시면 감사하겠습니다!!