티스토리 뷰

BOJ

[ 백준 1406 ] 에디터

wo_ody 2020. 11. 5. 21:52
에디터

안녕하세요 !!! 우디 입니다 .


 

문제

백준 에디터 문제

 

문제 설명

저는 이중 연결 리스트 ( Doubly Linked List ) 로 풀었습니다.

 

먼저, 헤드 노드를 이용하여 리스트에 접근할 수 있게 만들어 주었습니다.

문제에서의 cursor는 노드를 가르키는 포인터 변수를 따로 만들어 주었습니다.

( 그 이유는 헤드노드를 cursor의 역할로 할 수도 있겠지만, 그렇게 되버리면 나중에 답을 출력할때 순서가 꼬이게 됩니다 . )

 

 

위의 그림처럼 실제 cursor의 위치는 연결리스트 에서는 cursor의 오른쪽 문자가 들어있는 노드를 가르키게 했습니다. 즉, 노드를 가르키는 cursor의 위치는 실제로 cursor가 가르키고 있는 문자 왼쪽에 위치하게 됩니다.

 

이를 이용하여 P $를 처리할 함수와 문자열 입력값을 받아 연결리스트를 만들어 주는 과정을 통일시켰습니다 !

 

작성해야 할 함수들

  • 노드 동적 생성 함수
  • L (왼쪽으로 이동) -- > 더이상 갈 곳 없으면 무시
  • D (오늘쪽으로 이동) -- > 더이상 갈 곳 없으면 무시
  • B ( 왼쪽 삭제 ) -- > 삭제할 것이 없으면 무시 , 노드 동적할당 받았으면 삭제될 노드 꼭 해제
  • P $ ( 왼쪽에 $(문자는 랜덤) 추가 ) -- > cursor노드 앞에 문자 노드 추가

 

구현 ( 주석 설명 O )

 

'BOJ' 카테고리의 다른 글

[ 백준 16236 ] 아기상어  (0) 2020.11.24
[ 백준 16235 ] 나무 재테크  (0) 2020.11.24
[ 백준 15684 ] 사다리 조작  (0) 2020.10.08
[백준 13458] 시험감독  (0) 2020.04.20
[백준 14809] 경사로  (1) 2020.04.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함