개발자 면접 트레이딩 - 파이썬 알고리즘 문제(2)
(1). 개발자 면접 트레이닝 - 문자열 입력받아 역으로 출력(Reverse) 알고리즘
① 2가지 방법으로 접근 한다.
② 첫 번째 방법은 파이썬 리스트 활용
③ 두 번째 방법은 스택 구조 활용
④ 예를들어 ABCD 는 -> DCBA 출력 , ABAD -> DABA 출력
(2). 소스 코드
PYTHON
#reverseStr.py
import unittest
# 방법1 : 파이썬 리스트 활용
def reverseString(str):
return str[::-1]
# 방법2 : 스택(append, pop) 구조 활용
def reverseString2(str):
stack = []
for ch in str:
stack.append(ch)
result = ""
while len(stack) > 0:
result += stack.pop()
return result
class reverseStringTest(unittest.TestCase):
def test(self):
input = "abced"
self.assertEqual("edcba", reverseString(input))
print(reverseString(input))
input = "qewrt"
self.assertEqual("trewq", reverseString2(input))
print(reverseString2(input))
unittest.main()
(3). 소스 코드 분석
① 8 라인 : 파이썬 리스트 활용 함수 선언
② 13 라인 : 파이썬 스택(Stack) 활용 함수 선언
③ 21 라인 : 스택에서 POP으로 한 문자씩 꺼낸다.
④ 29 라인 : assertEqula 단위 테스트 함수를 사용하여 입력 결과와 출력결과를 비교
⑤ 31 라인 : 리버스된 문자열 출력
파이썬(Python) 으로 작성한 후 같은 코드를 Java 변환하여 작성해보면 더욱 도움이 될 것이다.
(4). 실행결과1 - 단위테스트 정상 출력(입출력 결과 같을 경우)
(5). 실행결과2 - 단위테스트 에러 출력(입출력 결과 다를 경우)
'언어 > Python' 카테고리의 다른 글
파이썬 알고리즘 - 문자열을 입력받아 중복단어 압축하기 (0) | 2017.08.20 |
---|---|
파이썬 알고리즘 - 공백을 %20으로 변환하기 (0) | 2017.08.19 |
파이썬 알고리즘 - 문자열로 서로 다른 단어 만들어내기(Anagram) (0) | 2017.08.18 |
파이썬 알고리즘 - 문자열에 포함된 문자들이 전부 유일한지 검사 (0) | 2017.08.14 |
파이썬(Python) 소개 및 설치하기 (1) | 2017.02.19 |