문제 번호 1131. -- [도전*2][데이터구조] DLL 데이터 검색하기

1131: [도전*2][데이터구조] DLL 데이터 검색하기

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 900  해결 문제 수: 416
[제출][채점 상황 열람][게시판]

문제 설명

주어진 숫자들로 DLL을 구성한 후, k 숫자를 입력받아, k을 갖는 노드의 두번째 앞과 두번째 뒤에 있는 노드의 값을 각각 출력하는 프로그램을 작성하시오. k값을 가진 노드가 없을 경우 "-999" 출력. k노드의 두번째 앞 노드가 null일 경우 "-999" 출력. 두번 째 뒤 노드가 null일 경우에도 "-999" 출력. 예를 들어, DLL = {1, 2, 3} 이고 k=2일 경우, "-999 -999"를 출력. DLL = {1}이고 k=1인 경우에도 "-999 -999"를 출력

입력

n
a1 a2 .. an
k

n: DLL의 데이터 개수 ( 1 <= n <= 100)
ai : DLL에 추가될 n개의 데이터
k: 검색할 노드값

출력

x y

x: k값을 가진 노드의  두번 째 앞에 있는 노드의 값
y: k값을 가진 노드의 두번 째 뒤에 있는 노드의 값

입력 예시

5
1 2 3 4 5
3

출력 예시

1 5

도움말

DLL에서 prev와 next 포인터의 사용에 대한 이해도를 평가합니다. 이 문제에서 p->next->next 혹은 p->prev->prev (p는 노드를 가리키는 포인터)를 사용할 때, p->next 혹은 p->prev의 null여부를 체크해야 합니다. 

출처

[제출][채점 상황 열람]