나의 풀이
using System.Linq;
using System.Collections.Generic;
public class Solution {
public string solution(string phone_number) {
string answer = "";
List<char> numbers = new List<char>();
phone_number = new string(phone_number.Reverse().ToArray());
for (int i = 0; i < phone_number.Length; i++)
{
if (i > 3)
numbers.Add('*');
else
numbers.Add(phone_number[i]);
}
numbers.Reverse();
answer = new string(numbers.ToArray());
return answer;
}
}
다른사람의 풀이
이번 문제에서는 반성을 해야할 것 같다. 뒷번호 4자리를 제외하는 배열을 돌게하려면
전체 길이의 -4만 했으면 됬는데 불필요하게 배열을 뒤집고 *로 바꾼 이후에 또 다시 뒤집는 방법으로 해결하였다.
string은 readOnly 타입이기 때문에 특정 배열에 접근하여 수정하는 것이 불가능하다고 생각해서 Char의 배열로 변환하였는데 이 또한 Substring으로 뒤에서 부터 문자열을 자르고, 이후에 PadLeft를 통해 해결이 가능했다는 사실을 알게 되었다.
조금 더 시야를 넓게 가지고 침착하게 문제에 다가가는 습관이 필요할 것 같다.
'알고리즘' 카테고리의 다른 글
[프로그래머스] 가운데 글자 가져오기 (0) | 2024.02.23 |
---|---|
[프로그래머스] C# 제일 작은 수 제거하기 (0) | 2024.02.22 |
프로그래머 음양 더하기 (0) | 2024.02.19 |
프로그래머스 나누어 떨어지는 숫자 배열 (0) | 2024.02.16 |
프로그래머스 서울에서 김서방 찾기 (0) | 2024.02.15 |