트랙
/
ABAP
ABAP
/
연습 문제
/
Elyse의 마법
Elyse의 마법

Elyse의 마법

쉬움

지침

마술사가 되려는 Elyse는 기본기를 몇 가지 연습해야 해요. Elyse에게는 조작하고 싶은 카드 더미가 있어요.

조금 더 쉽게 하기 위해 Elyse는 1부터 10까지의 카드만 사용해요. 그래서 카드 더미는 숫자로 이루어진 인터널 테이블로 나타낼 수 있어요. 카드의 위치는 테이블의 행에 대응해요. 즉, 1번 행은 첫 번째 카드를, 2번 행은 두 번째 카드를 가리켜요.

1. 카드 더미에서 카드 가져오기

카드 하나를 뽑으려면, 주어진 카드 더미에서 인덱스 position에 있는 카드를 반환해요.

data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(card) = get_Item( stack = stack
                       position = 3 ).   " card = 4

2. 카드 더미의 카드 교환하기

손기술을 좀 부려서 인덱스 position에 있는 카드를 주어진 대체 카드와 바꿔요. 조정된 카드 더미를 반환해요.

data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(new_Stack) = set_Item( stack = stack
                            position = 3 
                            replacement = 6 ).   
" new_Stack = 1, 2, 6, 1

3. 카드 더미 맨 위에 카드 넣기

카드 더미 맨 위에 새 카드를 넣어서 카드 하나가 나타나게 해요. 조정된 카드 더미를 반환해요.

data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Top( stack    = stack
                                      new_Card = 8 ).   
" new_Stack = 5, 9, 7, 1, 8

4. 카드 더미에서 카드 제거하기

주어진 position에 있는 카드를 카드 더미에서 제거해서 카드 하나가 사라지게 해요. 조정된 카드 더미를 반환해요.

data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item( stack    = stack
                               position = 3 ).   
" new_Stack = 3, 2, 4, 8

5. 카드 더미 맨 위의 카드 제거하기

카드 더미 맨 위에 있는 카드를 제거해서 카드 하나가 사라지게 해요. 조정된 카드 더미를 반환해요.

data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).   
" new_Stack = 3, 2, 6, 4

6. 카드 더미 맨 아래에 카드 넣기

카드 더미 맨 아래에 새 카드를 넣어서 카드 하나가 나타나게 해요. 조정된 카드 더미를 반환해요.

data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Bottom( stack    = stack
                                         new_Card = 8 ).   
" new_Stack = 8, 5, 9, 7, 1

7. 카드 더미 맨 아래의 카드 제거하기

카드 더미 맨 아래에 있는 카드를 제거해서 카드 하나가 사라지게 해요. 조정된 카드 더미를 반환해요.

data(stack) = value #( ( 8 ) ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).   
" new_Stack = 5, 9, 7, 1

8. 카드 더미의 크기 확인하기

카드 더미의 크기(행 개수)를 반환해요.

data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(size_of_Stack) = get_Size_of_Stack( stack ).   
" size_of_Stack = 5
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
ABAP Exercism

Elyse의 마법 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 ABAP 트랙을 연습 문제 54개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.