이번 문제는 First Word다
조건
1. ,와 .는 필요없다.
2. 하지만 ,와 .로 문자와 문자는 구분한다.
3. 앞의 공백도 필요없다.
4. 가장 앞의 문자만 추출해서 리턴하라.
문자열을 다루는 문제이다.
text를 받아서 위의 조건에 맞춰 리턴해줄 예정이다.
위의 1을 위해서는 아래의 명령어를 쓰면된다.
a. replace(바꿀 것, 바뀐 것)
replace는 a 문자열의 특정 문자를 다른 문자로 일괄 변경해준다.
text = text.replace(',' , ' ').replace('.', ' ')
를 해줘서 ,와 .를 모두 공백으로 바꿔주자.
없애지 않는 건 구분점과 헷갈리지 않기 위해서다
예를 들어 "greetings,friends" 라고 쓰여있는데 ,를 일방적으로 지우면 greetingsfriends 가 리턴될 거다. 우리가 필요한건 greetings 다.
그 다음은 앞에 생길 수 있는 공백을 지워주자.
lstrip 이라는 명령어는 왼쪽의 공백을 지워준다.
text = text.lstrip() 를 해주자.
한 가지 알아둘 것은 사실 위의 리플레이스는 text 값을 갈아치우지 않아도 실행하면 값이 완성된다.
하지만 lstrip()는 표현식이기 때문에 반드시 text = text.lstrip()와 같은 방식으로 값을 변환해줘야한다.
이제
1. 문자열에서 공백을 찾아 공백 앞의 문자를 리턴하거나
2. 공백이 없으면 그대로 리턴하는 일만 남았다.
n = 0
while n < len(text):
if text[n] == " ":
return text[:n]
else: n+=1
return text
완료~
풀코드
def first_word(text: str) -> str:
text = text.replace(".", " ").replace(",", " ")
text = text.lstrip()
n = 0
while n < len(text):
if text[n] == " ":
return text[:n]
else: n+=1
return text
이제 다른 사람들의 해법을 보자
def first_word(text: str) -> str:
text = text.replace('.', ' ').replace(',', ' ').strip()
return text.split()[0]
아. 그렇구나. 그냥 양쪽 공백 다 날리고 내부 공백으로 스플릿하면
공백기준으로 나뉘는구나....
후......
'게임 프로그래밍 > Python' 카테고리의 다른 글
Jupyter notebook 기본 브라우져 바꾸기 (4) | 2019.01.31 |
---|---|
아나콘다와 파이참 연결 (0) | 2019.01.13 |
CheckIO(python) - Say Hi 문제 (0) | 2018.07.30 |
CheckIO-Correct_sentence 문제 (0) | 2018.07.30 |
CheckIO(python)-Fizz Buzz 문제 (0) | 2018.07.30 |