
https://exercism.org/tracks/abap/exercises/scrabble-score/solutions
Community solutions for Scrabble Score in ABAP on Exercism
Explore other people's solutions to Scrabble Score in ABAP, and learn how others have solved the exercise.
exercism.org
문자열에서 특정 알파벳을 포함할 시
점수를 계산해서 return 하는 메소드 작성을 하는 퀴즈.
주의할 점은 대소문자를 고려해서 작성해야 한다는 점.
코드 테스트시 다양한 input문을 집어넣어 적절히 계산하는지 보는 듯 하다.
내가 작성한 답변은
CLASS zcl_scrabble_score DEFINITION PUBLIC .
PUBLIC SECTION.
DATA : gs_str TYPE string,
gv_len TYPE I,
gv_1 TYPE I,
gv_2 TYPE I,
gv_3 TYPE I,
gv_4 TYPE I,
gv_5 TYPE I,
gv_8 TYPE I,
gv_10 TYPE I,
INPUT TYPE STRING.
METHODS score
IMPORTING
input TYPE string OPTIONAL
RETURNING
VALUE(result) TYPE i.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_scrabble_score IMPLEMENTATION.
METHOD score.
" add solution here
CLEAR gs_str.
gv_len = strlen( input ).
DO gv_len TIMES.
gv_len = gv_len - 1.
gs_str = input+0(1).
IF gs_str CA 'AaEeIiOoUuLlNnRrSsTt'.
ADD 1 TO gv_1.
ELSEIF gs_str CA 'DdGg'.
ADD 1 TO gv_2.
ELSEIF gs_str CA 'BbCcMmPp'.
ADD 1 TO gv_3.
ELSEIF gs_str CA 'FfHhVvWwYy'.
ADD 1 TO gv_4.
ELSEIF gs_str CA 'Kk'.
ADD 1 TO gv_5.
ELSEIF gs_str CA 'JjXx'.
ADD 1 TO gv_8.
ELSEIF gs_str CA 'QqZz'.
ADD 1 TO gv_10.
ENDIF.
input = input+1(gv_len).
ENDDO.
result = gv_1 + ( 2 * gv_2 ) + ( 3 * gv_3 ) + ( 4 * gv_4 ) + ( 5 * gv_5 ) + ( 8 * gv_8 ) + ( 10 * gv_10 ).
ENDMETHOD.
ENDCLASS.
다른 사람의 답변 중 괜찮았던 것은
METHOD score.
result = count( val = input regex = '[aeioulnrst]' case = abap_false ) * 1 +
count( val = input regex = '[dg]' case = abap_false ) * 2 +
count( val = input regex = '[bcmp]' case = abap_false ) * 3 +
count( val = input regex = '[fhvwy]' case = abap_false ) * 4 +
count( val = input regex = '[k]' case = abap_false ) * 5 +
count( val = input regex = '[jx]' case = abap_false ) * 8 +
count( val = input
regex = '[qz]'
case = abap_false ) * 10. "false인 경우 대소문자 구분 x
ENDMETHOD.
| SAP ABAP - BAdI 추가 (0) | 2024.09.13 |
|---|---|
| SAP ABAP - OOP Class 연습 #4 문자열 반전(Reverse String) (0) | 2024.01.12 |
| SAP ABAP - OOP Class 연습 #1 헬로 월드(Hello, World!) (0) | 2024.01.09 |
| SAP ABAP - 다른 SAP끼리 데이터 송수신하는 RFC 펑션 프로그램 (1) | 2023.08.23 |
| SAP ABAP - BDC 실습(자재 마스터 변경) (0) | 2023.03.17 |