Coding Test/Java Coding Test
[프로그래머스 / 자바] - 핸드폰 번호 가리기
nam_ji
2024. 1. 22. 09:48
핸드폰 번호 가리기
문제
- 문자열 phone_number가 매개변수로 주어집니다.
- phone_number의 뒤 4자리를 제외한 나머지를 *로 바꿔서 출력하는 문제입니다.
테스트 (이클립스)
- 우선 문자열 phone_number의 값을 char 배열에 하나씩 담도록 해줍니다.
- for문을 이용하여 0부터 phone_number의 크기의 -4까지만 순회하도록 하고
- 그 안에서 char 배열로 바꾼 값의 원소들을 *로 바꾸도록 합니다.
- 그리고 char 배열을 다시 String 타입으로 바꿔주면 됩니다.
- 밑에 다른 사람 풀이 중에서 괜찮은 풀이법이 있어서 가져와 봤습니다.
- for문을 이용하여 phone_number의 -4까지 순회하도록 하고
- answer의 값을 for문의 순회하는 크기만큼 *을 담도록 합니다.
- 그럼 answer에는 ********이 담기게 되고 그 값에 substring을 이용하여 phone_number의 -4번째부터 끝까지의 값을 더해주면 문제를 해결할 수 있습니다.
package com.namji.codingtest.level0;
public class HideYourCellPhoneNumber {
public static void main(String[] args) {
/**
* 문자열 phone_number가 매개변수로 주어집니다.
* phone_number의 마지막 4자리를 제외하고 전부 *처리하여 출력하는 문제입니다.
* "01033334444" > "*******4444" / "027778888" > "*****8888"
*/
String phone_number = "01033334444";
char[] c = phone_number.toCharArray();
for (int i = 0; i < c.length - 4; i++) {
c[i] = '*';
}
System.out.println(String.valueOf(c));
// String answer = "";
// for (int i = 0; i < phone_number.length() - 4; i++) {
// answer += "*";
// }
// answer += phone_number.substring(phone_number.length() - 4);
// System.out.println(answer);
//
// System.out.println(phone_number.replaceAll(".(?=.{4})", "*"));
}
}
프로그래머스 코드
class Solution {
public String solution(String phone_number) {
char[] c = phone_number.toCharArray();
for (int i = 0; i < c.length - 4; i++) {
c[i] = '*';
}
return String.valueOf(c);
}
}