내코드
def solution(cipher, code):
answer=""
jump = code
while jump <= len(cipher):
answer += cipher[jump-1]
jump += code
return answer
코드설명
- answer라는 빈 문자열을 초기화합니다.
- jump라는 변수에 code 값을 넣어줍니다. 이 변수는 해당 위치를 점프하며 검사하기 위해 사용됩니다.
- while 루프를 이용해 jump 값이 cipher 길이 이하일 때까지 반복합니다.
- cipher[jump-1]를 가져와 answer에 추가합니다.
- jump 값에 code를 더해 다음 배수 번째 문자를 탐색합니다.
- 반복이 끝나면 answer를 반환합니다.
특징
- 명확한 루프 구조: 반복문과 조건문을 이용해 code 배수 번째 문자를 순차적으로 추출합니다.
- 직관적: 코드 흐름이 직관적이기 때문에 이해하기 쉽습니다.
- 효율성: 문자열 길이가 최대 1,000이므로 반복문이 큰 문제 없이 수행됩니다.
다른 코드
def solution(cipher, code):
answer = cipher[code-1::code]
return answer
코드설명
- 슬라이싱 기능을 사용해 code-1 번째 인덱스부터 시작합니다.
- ::code를 이용해 code 간격마다 문자를 추출합니다.
- 결과를 answer에 저장하고 반환합니다.
특징
- 간결함: 슬라이싱 기능을 잘 활용해 코드가 매우 짧고 간결합니다.
- 파이썬스러움: 파이썬의 슬라이싱 기능을 적극적으로 활용하여 불필요한 반복문을 제거했습니다.
- 가독성: 코드의 길이는 짧지만 파이썬 문법에 익숙하면 직관적으로 이해할 수 있습니다.
두 코드 비교
- 내 코드는 while 루프를 사용해 문자열을 탐색하며 code 간격으로 문자를 추가합니다.
- 반복문을 사용한 전통적인 방식으로 동작합니다.
- 코드 흐름이 명확해 초보자도 이해하기 쉽습니다.
- 다른 코드는 슬라이싱을 활용해 시작점과 간격을 한 번에 처리합니다.
- 코드가 짧고 효율적이며 파이썬의 장점을 잘 활용했습니다.
- 다만 슬라이싱 문법을 처음 접하는 사람에게는 직관적이지 않을 수 있습니다.
결론
두 코드 모두 문제를 해결하지만, 파이썬 슬라이싱을 사용한 다른 코드가 더 간결하고 효율적입니다. 하지만 코드의 이해도와 작성 상황에 따라 루프를 사용한 방법도 충분히 좋은 선택입니다. 상황에 따라 적절한 방식을 선택하면 됩니다.
'프로그래머스' 카테고리의 다른 글
프로그래머스 | Python | OX퀴즈 (0) | 2024.12.19 |
---|---|
프로그래머스 | Python | 외계어 사전 (0) | 2024.12.17 |
프로그래머스 | Python | 구슬을 나누는 경우의 수 (0) | 2024.12.16 |
프로그래머스 | Python | 삼각형의 완성조건 (2) (0) | 2024.12.16 |
프로그래머스 | Python | 영어가 싫어요 (0) | 2024.12.10 |