본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 핸드폰 번호 가리기

by 며루치꽃 2021. 1. 13.

1. 문제

programmers.co.kr/learn/courses/30/lessons/12948

 

코딩테스트 연습 - 핸드폰 번호 가리기

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자

programmers.co.kr

2. 내가 생각했던 풀이과정

 

1) 기존 문자열을 자릅니다

2) 자른 문자열만큼 '*' 를 추가합니다

3) * 을 추가하는 방법은 문자열 -4 만큼의 길이를 곱하고 나머지 부분에서는 자르고 남은 문자열을 붙입니다.

 

3. 나의 풀이

phone_number = input()

#1
def solution(phone_number):
    blockindex = len(phone_number) - 4
    if(blockindex == 0):
        return phone_number
    else:
        new_phone_number = ('*' * blockindex) + phone_number[blockindex:]
        return new_phone_number

solution(phone_number)

풀이가 장황해진 이유는 테스트 케이스 9번 때문이였는데, 아마 문자열 길이가 4일 때 예외처리를 안해서 런타임 에러가 나는 것 같았다. 그래서 문자열 길이가 4일때 예외처리를 한 것이였는데, 다른 사람 풀이보니 그럴 필요가 딱히 없었다.

4. 다른 사람의 풀이

def hide_numbers(s):
    return "*"*(len(s)-4) + s[-4:]

뒤의 문자열을 -로 처리하여 슬라이스를 진행한점 다시한번 생각하고 기억해야겠다.

5. 새로 알게된 점 또는 느낀점

슬라이스를 진행할때 -로 시작하는 점

 

문자열 곱셉이 가능하다는 것을 다시한번 기억하자

 

제출한 풀이에서는 아무 영향이 없는 for 문을 지우지 않고 제출하여 정답처리가 되었다,, 정답 여부도 중요하지만 최적하에 신경쓰자

 

댓글