문자열 패딩 ( Padding )

2026. 5. 14. 03:16·📖TIL/✅CodingTest

핸드폰 번호 가리기

https://school.programmers.co.kr/learn/courses/30/lessons/12948

전화번호가 매개변수로 주어질 때, 전화번호 뒷 4자리를 제외한 나머지 숫자를 전부 * 로 변환하는 문제이다.

내가 생각한 방법은 이렇다.

  1. phone_number 를 char 배열로 담는다. ( string 은 불변이기 때문 )
  2. 반복문 for 를 사용한다.
  3. for(int i = 0; 0 < phone_number.Length - 4; i++)
  4. phone_number.Length 의 - 4 를 하면 인덱스 마지막 4자리는 포함 안되니까 그대로 * 로 변환
  5. 마지막으로 형변환을 활용해서 문자열로 변환 후 반환
public 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 new string(c);
    }
}

 

여기서 일부분을 잘못 작성 했었다.

char[] c = new phone_number.ToCharArray();

ToCharArray() 가 이미 새 배열을 만들어서 반환하기 때문에 new 가 불필요하다.


Padding 을 활용한 전화번호 마스킹

다른 사람 풀이 중에 처음 보는 메서드가 있었다.

Padding 을 활용하면 더 간단하게 풀이가 가능하다.

public class Solution 
{
    public string solution(string phone_number) 
    {
        return phone_number.Substring(phone_number.Length - 4).PadLeft(phone_number.Length, '*');
    }
}

 

Padding 을 사용하지 않고도 가능하다.

public class Solution 
{
    public string solution(string phone_number) 
    {
        return new string('*', phone_number.Length - 4) + phone_number.Substring(phone_number.Length - 4);
    }
}

 

▲코드 풀이

  1. new string('*', phone_number.Length - 4) 
    앞부분을 * 로 채운다.
  2. phone_number.Substring(phone_number.Length - 4)
    뒤의 4 자리 가져오기
  3. 둘을 합치기

 

SubString

문자열의 일부를 잘라내는 메서드이다.

string str = "hello";

str.Substring(2)      // → "llo" (2번 인덱스부터 끝까지)
str.Substring(1, 3)   // → "ell" (1번 인덱스부터 3개)

 

  • SubString( 시작 Index ) : 시작부터 끝까지
  • SubString( 시작 Index, 길이 ) : 시작부터 길이만큼

패딩 ( Padding )

패딩은 문자열의 길이를 맞추기 위해 빈 공간을 특정 문자로 채우는 것을 말한다.

C# 에서는 대표적으로 두 가지 메서드가 있다.

PadLeft()
PadRight()
  1. PadLeft : 왼쪽에 문자를 채워서 문자열 길이를 맞추는 메서드이다.
  2. PadRight : 오른쪽에 문자를 채워서 문자열 길이를 맞추는 메서드이다.

 

 

문법

문자열.PadLeft(전체길이, 채울문자)
문자열.PadRight(전체길이, 채울문자)
"hello".PadLeft(10)        // → "     hello" (왼쪽에 공백 채우기)
"hello".PadRight(10)       // → "hello     " (오른쪽에 공백 채우기)
"hello".PadLeft(10, '*')   // → "*****hello" (왼쪽에 * 채우기)
"hello".PadRight(10, '*')  // → "hello*****" (오른쪽에 * 채우기)

 

채울 문자를 생략하면 기본적으로 공백으로 채워진다.


 

'📖TIL > ✅CodingTest' 카테고리의 다른 글

문자 리스트를 문자열로 변환  (0) 2026.05.29
숨어있는 숫자의 덧셈  (0) 2026.05.16
등차수열의 합  (0) 2026.05.12
반복문 없이 반복된 문자열 만들기  (0) 2026.05.10
문자열 변환 없이 각 자릿수 분리  (0) 2026.05.09
'📖TIL/✅CodingTest' 카테고리의 다른 글
  • 문자 리스트를 문자열로 변환
  • 숨어있는 숫자의 덧셈
  • 등차수열의 합
  • 반복문 없이 반복된 문자열 만들기
DevHoChan
DevHoChan
맨땅에서 시작하는 코딩 도전
  • DevHoChan
    Debugging Life
    DevHoChan
  • 전체
    오늘
    어제
    • 분류 전체보기 (374)
      • 🕹️Game Life (1)
      • 🖥️Computer Science (5)
      • 📖TIL (141)
        • 🔥Projects (16)
        • 💡DevTips (5)
        • 🤔발생한 문제와 해결 (5)
        • 🔮Unity Graphics (5)
        • 🎤Interview (3)
        • ✅CodingTest (9)
      • 🚀Game Release (4)
      • 🧊Unity Basic (58)
        • 📌용어 사전 (1)
        • 에디터&인터페이스 (3)
        • 디버그 (1)
        • 라이프사이클 (4)
        • 게임오브젝트 (4)
        • 프리팹 (1)
        • 오브젝트풀링 (4)
        • 애트리뷰트 (2)
        • 트랜스폼 (4)
        • 물리&충돌 (1)
        • 프레임&델타타임 (4)
        • 코루틴&이벤트 (7)
        • 수학&보정함수 (3)
        • 디자인패턴 (9)
        • UGUI (3)
        • 벡터 ( Vector ) (3)
        • 씬 ( Scene ) (2)
        • 데이터 관리 (2)
      • ⭐C Sharp (99)
        • 📌용어 사전 (1)
        • 📌문법 사전 (6)
        • 메모리 관리 (3)
        • 00. 문법 (17)
        • 01. 변수 (3)
        • 02. 자료형 (2)
        • 03. 연산자 (6)
        • 04. 조건문 (2)
        • 05. 반복문 (2)
        • 06. 배열 (3)
        • 07. 메서드(함수) (7)
        • 08. 열거형 (3)
        • 09. 구조체 (2)
        • 10. 참조 (2)
        • 11. 객체 지향 (11)
        • 12. 델리게이트 (3)
        • 13. 디자인 패턴 (7)
        • 14. LINQ (1)
        • 📂▼자료구조 (2)
        • 15-1. 제네릭 (3)
        • 15-2. 배열 (4)
        • 15-3. 리스트 (2)
        • 15-4. 스택과 큐 (2)
        • 15-5. 딕셔너리 해시테이블 (2)
        • 15-6. 트리와 그래프 (3)
      • 📊Algorithm (16)
        • BigO (2)
        • 정렬 (4)
        • 셔플 (2)
        • 탐색 (6)
        • 최적화 (1)
      • 📝Game Design (16)
      • 🤖​AI Tools (12)
        • AI 리뷰 분석 (6)
        • Player2 (0)
        • 3D 모델링 (1)
        • 2D 스프라이트 (0)
        • 이미지 (2)
        • 사운드 (1)
        • 동영상 (1)
        • 문서 (1)
      • 🌍Network (6)
      • 🌱Github (11)
        • 기본 개념 (7)
        • 명령어 (1)
        • 도구 활용 (1)
      • ⚙️Visual Studio (5)
        • 🔧설치 및 환경설정 (2)
        • ⌨️HotKey (1)
        • 🚨디버깅 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    게임기획
    unity
    gamedesign
    기획
    자료구조
    GitHub
    algorithm
    til
    OOP
    CodingTest
    c#
    게임디자인
    유니티
    자료형
    메모리관리
    객체지향
    문법
    csharp
    부트캠프
    디자인패턴
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
DevHoChan
문자열 패딩 ( Padding )
상단으로

티스토리툴바