C#

[TIL] C# 프로그래머스_ 대소문자 바꿔서 출력, 문자열 겹쳐쓰기

unihee1 2025. 2. 6. 22:00

오늘은 프로그래머스 코딩 기초 트레이닝 문제를 풀어보았다. 오늘 풀었던 5문제 중 2문제에 대해서 글을 써보려고 한다.

1. 대소문자 바꿔서 출력하기

  • 문제
영어 알파벳으로 이루어진 문자열 str이 주어지고 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드 작성
using System;

public class Example
{
    public static void Main()
    {
        Console.Clear();
        string input = Console.ReadLine(); 
        
        char[] charArray = input.ToCharArray(); // 문자열을 문자 배열로 변환

        for (int i = 0; i < charArray.Length; i++)
        {
            if (char.IsUpper(charArray[i])) // 대문자인지 판별
            {
                charArray[i] = char.ToLower(charArray[i]); // 소문자로 변환
            }
            else if (char.IsLower(charArray[i])) // 소문자인지 판별
            {
                charArray[i] = char.ToUpper(charArray[i]); // 대문자로 변환
            }
        }
        
        string result = new string(charArray); // 다시 문자열로 변환
        Console.WriteLine(result); 
           
        
    }
}
  • 문자 변환 과정
char[] charArray = input.ToCharArray();

ToCharArray() 메서드를 사용하여 str 문자열을 문자 배열로 변환하여 charArray에 저장한다.

※ ToCharArray() 메서드: 문자열(String)을 문자 배열(char[])로 변환하는 C#의 메서드

  • 대소문자 변환
if (char.IsUpper(charArray[i])) 
{
    charArray[i] = char.ToLower(charArray[i]);
}
else if (char.IsLower(charArray[i])) 
{
    charArray[i] = char.ToUpper(charArray[i]);
}

IsUpper과 IsLower로 charArray가 대문자인지 소문자인지 판별하고 맞으면 true, 틀리면 false를 반환하고

ToLower과 ToUpper로 대문자는 소문자로 소문자는 대문자로 변환한다.


2. 문자열 겹쳐쓰기

  • 문제
문자열 my_string, overwrite_string과 정수 s가 주어지고 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성
// 첫번째 방법
using System;
public class Solution {
    public string solution(string my_string, string overwrite_string, int s) {
        return my_string.Remove(s, overwrite_string.Length).Insert(s, overwrite_string);
    }


// 2번째 방법
using System;
public class Solution {
    public string solution(string my_string, string overwrite_string, int s) {
        return my_string.Substring(0, s) + overwrite_string + my_string.Substring(s + overwrite_string.Length);
    }
}
  • 첫 번째 방법 (Remove + Insert 활용)
my_string. Remove(s, overwrite_string.Length)

my_string에서 s 위치부터 overwrite_string.Length 길이만큼 문자열을 삭제한다.

Insert(s, overwrite_string)

s 위치에 overwrite_string을 삽입한다

 

  • 두 번째 방법 (Substring 활용)
my_string.Substring(0, s)

s 이전까지의 문자열을 가져온다.

※ Substring() 메서드: C#에서 문자열의 일부를 추출하는 메서드

+ overwrite_string

overwrite_string을 추가한다

my_string.Substring(s + overwrite_string.Length)

s + overwrite_string.Length 이후의 문자열을 가져온다.