반응형
프로그래머스 코딩테스트 연습 Level 1 - 핸드폰 번호 가리기
문제의 핵심
1. 문자열의 원하는 부분만 가져올 수 있는가?
2. 문자열끼리의 덧셈을 이해하고 있는가?
3. C#의 인덱싱 기능을 활용할 수 있는가?
이 문제를 보자마자 C#에 존재하는 .. 문법을 사용하려 했는데
프로그래머스에서는 .. 을 사용하면 컴파일에러가 발생한다.
아마 C# 버전이 낮은 것 같다.
string[1..5]
이렇게 쓰면 문자열의 1번 인덱스부터 5번 인덱스-1까지 슬라이싱해서 가져올 수 있어서
정말 간편한 기능이고 ^ 기호를 사용해서 역순으로도 가져올 수 있다.
근데 프로그래머스는 .. 과 ^ 기능이 모두 사용이 현재는 불가능한 것 같다.
이 문법들을 사용하면 매우 간단하게 문제를 풀 수 있다.
해당 풀이 코드는 본 글 마지막에 첨부해두었다.
아무튼 그럼, 프로그래머스에서 가능한 방식으로 해결해보자.
사실 이것도 간단하긴 하다.
입력받은 폰넘버의 길이만큼 for문을 돌려주고
i값의 크기에 따라서
*를 더해주느냐, 번호를 더해주느냐를 구분해주면 된다.
i의 크기가 폰넘버배열길이의 -4보다 작은지 큰지를 구분해주면 된다.
정답 코드 - 프로그래머스
public class Solution
{
public string solution(string phone_number)
{
string answer = "";
for (int i = 0; i < phone_number.Length; i++)
{
if (i < phone_number.Length-4)
{
answer += "*";
}
else
{
answer += phone_number[i];
}
}
return answer;
}
}
정답 코드 - 더 짧은 버전
public class Solution
{
public string solution(string phone_number)
{
string answer = "";
// 폰넘버길이의 -4 만큼 *를 answer에 더해준다.
for (int i = 0; i < phone_number.Length - 4; i++)
{
answer += "*";
}
// 입력받은 번호를 뒤에서 4번째부터 끝까지 잘라온다.
answer += phone_number[^4..];
return answer;
}
}
반응형
'C# > 프로그래머스' 카테고리의 다른 글
[프로그래머스] C# : 직사각형 별찍기 (0) | 2021.07.28 |
---|---|
[프로그래머스] C# : 짝수와 홀수 (0) | 2021.07.28 |
[프로그래머스] C# : 두 개 뽑아서 더하기 (0) | 2021.07.28 |
[프로그래머스] C# : x만큼 간격이 있는 n개의 숫자 (0) | 2021.07.27 |
[프로그래머스] C# : 나누어 떨어지는 숫자 배열 (0) | 2021.07.27 |
댓글