`핸드폰 번호 가리기`
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
java code
class Solution {
public String solution(String phone_number) {
String answer = "";
String last = phone_number.substring(phone_number.length()-4);
for (int i = 0; i < phone_number.length()-4; i++) {
answer += "*";
}
return answer+last;
}
}
다른풀이
class Solution {
public String solution(String phone_number) {
// 문자열의 길이에서 뒤에서 4자리를 뺀 길이만큼 *로 채운 문자열을 만듭니다.
String stars = "*".repeat(phone_number.length() - 4);
// 전화번호의 뒤 4자리를 가져옵니다.
String lastFourDigits = phone_number.substring(phone_number.length() - 4);
// *로 가린 문자열과 뒤 4자리를 합쳐서 반환합니다.
return stars + lastFourDigits;
}
}
문자열을 가리는 문제는 주어진 문자열의 일부를 '*'으로 가려서 새로운 문자열을 만드는 문제입니다.
예를 들어, 주어진 문자열이 "01012345678"이라면, 뒤 4자리인 "5678"을 제외한 나머지 숫자 부분을 모두 '*'로 가려서 "*******5678"과 같은 새로운 문자열을 만들어야 합니다.
이를 해결하기 위해서는 우선 문자열의 길이를 구해야 합니다. 이후 문자열의 길이에서 뒤에서 4자리를 뺀 길이만큼 '*'로 이루어진 문자열을 만듭니다.
그 다음으로는 원래 문자열에서 뒤 4자리를 추출해야 합니다. 이를 위해 substring 메소드를 사용할 수 있습니다. substring 메소드는 문자열의 일부분을 추출할 때 사용하는 메소드로, 인덱스를 지정하여 해당 인덱스부터 문자열을 추출할 수 있습니다. 따라서 원래 문자열의 길이에서 4를 뺀 인덱스부터 끝까지 추출하면 뒤 4자리를 추출할 수 있습니다.
마지막으로는 '*'로 이루어진 문자열과 뒤 4자리를 합쳐서 반환하면 됩니다. 이때 문자열 연결 연산자인 '+'를 사용하여 문자열을 연결하면 됩니다.
위와 같은 방식으로 문자열을 가릴 수 있습니다.
python code
def solution(phone_number):
return '*'*(len(phone_number)-4) +phone_number[-4:]
입력으로 주어진 전화번호의 길이에서 4를 뺀 만큼 '*'로 이루어진 문자열을 만듭니다. 이를 위해
'*' 문자열을 곱셈 연산자를 사용하여 전화번호 길이에서 4를 뺀 수만큼 반복한 후,
이를 반환할 문자열의 앞부분에 대입합니다.
그리고, 전화번호의 뒤 4자리를 추출합니다. 이를 위해 문자열 인덱스를 사용하여 전화번호의 마지막에서부터
4번째 인덱스까지 추출합니다. 이 추출된 문자열은 반환할 문자열의 뒷부분에 대입합니다.
마지막으로, 문자열 연결 연산자 '+'를 사용하여 앞부분에 '*'로 이루어진 문자열과 뒷부분에 추출한 전화번호의 뒤 4자리를 합쳐서 새로운 문자열을 만들어 반환합니다.
예를 들어, "01012345678"이라는 전화번호가 주어진다면, 먼저 전화번호의 길이에서 4를 뺀 결과값은 7입니다. 따라서 '' 문자열을 7번 반복한 결과인 "******"을 반환할 문자열의 앞부분에 대입합니다. 그리고 문자열 인덱스를 사용하여 전화번호의 마지막에서부터 4번째 인덱스까지 추출한 결과값인 "5678"을 반환할 문자열의 뒷부분에 대입합니다. 이 두 문자열을 '+' 문자열 연결 연산자를 사용하여 합치면, "*******5678"이라는 결과값을 반환합니다.
'algorithm' 카테고리의 다른 글
[프로그래머스]배열의 유사도 - java,python (0) | 2023.03.03 |
---|---|
[프로그래머스] - 콜라츠 추측,java, python (0) | 2023.03.03 |
[프로그래머스]순서쌍의 개수 - java, python (1) | 2023.03.03 |
[프로그래머스]정수 제곱근 판별 - java, python (2) | 2023.03.03 |
[프로그래머스]가위 바위 보 - java, python (0) | 2023.03.03 |
댓글