파이문

Replace With Alphabet Position 본문

문제 풀이/codewars

Replace With Alphabet Position

민Z 2016. 4. 2. 22:35

Replace With Alphabet Position


알파벳으로 이루어진 문자열을 받고, 거기에 해당하는 순서 (a라면 첫번째 알파벳이므로 1)를 리턴하는 문제였습니다.

단, 알파벳이 아닌 (쉼표와 같은) 문자는 무시해야 하였습니다.


우선 전체 문자열을 모두 대문자로 바꾸고 아스키 값으로 다시 변환한 후 특정 숫자 (64)를 빼어 순서를 구하려 하였습니다.

그런데 테스트코드에서 에러가 나, 무슨 일인가 봤더니 결과 값이 리스트가 아니라 문자열로 되어 있어 리스트를 문자열로 바꿔주는 작업을 한 번 더 진행하였습니다.

def alphabet_position(text):
    text = [ord(x) - 64 for x in text.upper() if x > 65]
    word_list = filter(lambda x: x >= 0, text)
    word_list = ' '.join(str(x) for x in word_list)
    return word_list

다른 사람의 코드를 보니 isalpha 함수를 썼더군요. 굳이 65보다 크게 안 잡아도 되는데 말입니다.

또 새로운 함수도 알았는데 string에 있는 string.ascii_lowercase였습니다.이썬에서 a-z까지 찾을 때 해당 함수를 쓰면 되겠더군요.


'문제 풀이 > codewars' 카테고리의 다른 글

Triangle number check  (0) 2016.04.13
Consecutive strings  (0) 2016.04.10
Valid Phone Number  (0) 2016.04.10
Find The Parity Outlier  (0) 2016.04.02
Comments