본 게시글은 http://tryhelloworld.co.kr/ 에 있는 문제를 바탕으로 풀이한 것입니다.
문제.
별이는 헬로월드텔레콤에서 고지서를 보내는 일을 하고 있습니다. 개인정보 보호를 위해 고객들의 전화번호는 맨 뒷자리 4자리를 제외한 나머지를 "*"
으로 바꿔야 합니다.
전화번호를 문자열 s로 입력받는 hide_numbers함수를 완성해 별이를 도와주세요
예를들어 s가 "01033334444"
면 "*******4444"
를 리턴하고, "027778888"
인 경우는 "*****8888"
을 리턴하면 됩니다.
1 2 3 4 5 | def hide_numbers(s): #함수를 완성해 별이를 도와주세요 # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : " + hide_numbers('01033334444')); | cs |
정답 및 풀이.
제가 알고리즘을 푸는 방법으로 풀이하겠습니다.
세분화
1. 전화번호를 문자열 s로 입력받는다.
print(hide_numbers('01033333333')이 되겠죠
2. 뒷자리를 제외한 나머지를 * 으로 바꾼다. ->이녀석을 return에 넣어야 할것 같네요
2-1. 뒷자리를 계산하기 위하여 문자열의 길이를 구한다. -> len(s)
2-2. 문자열에서 맨끝 4자리를 제외한 문자열을 먼저 *로 바꾼다. '*' * (len(s)-4)
2-3. 나머지 4개의 문자를 출력한다. s[-4:]
1 2 3 4 5 | def hide_numbers(s): #함수를 완성해 별이를 도와주세요 return '*' * (len(s)-4) + s[-4:] # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : " + hide_numbers('01033334444')); | cs |
결과: #######4444
결과값 *******4444을 010########로 출력이 나오도록 해보기
1 2 3 4 5 | def hide_numbers(s): #함수를 완성해 별이를 도와주세요 return s[:3] + '#' * (len(s[3:])) # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : " + hide_numbers('01033334444')); | cs |
결과 : 010########
'파이썬 프로그래밍 > 파이썬 심화' 카테고리의 다른 글
[Python] 파이썬 예제. 제일작은 수 제거하기 풀이 (0) | 2017.03.24 |
---|---|
[Python] 파이썬 예제. 짝수와 홀수 구하기 풀이 (0) | 2017.03.24 |
[Python] (초급) 파이썬 x만큼 간격이 있는 n개의 숫자 풀이 (0) | 2017.03.21 |
[Python] 파이썬 예제 반복문과 조건문을 이용한 자판기 만들기 (2) | 2016.05.19 |
[Python] 입력받은 숫자의 구구단 출력하기 (0) | 2016.05.19 |