C# 프로그래머스 코딩테스트 대소문자 바꿔서 출력하기

삐얅·2024년 4월 5일
0

문제 설명

영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

제한 사항

제한사항

  • 1 ≤ str의 길이 ≤ 20
    * str은 알파벳으로 이루어진 문자열입니다.

입출력 예

입력 #1

aBcDeFg

출력 #1

AbCdEfG

문제 풀이

using System;
//Select 함수를 사용하기 위한 네임스페이스
using System.Linq;

public class Example
{
    public static void Main()
    {
        String s;
        
        Console.Clear();
        s = Console.ReadLine();
        
        //대문자와 소문자를 구분하는 조건 연산자 
        //아래 조건연산자의 ?:은 삼항 연산자로 =>은 람다 표현식이라고 한다.
        //IsUpper가 true일 경우 소문자를 반환하고 false일 경우 대문자를 반환
        //var 변수는 형식을 지정하지 않고 할당된 값을 기반으로 추론하는 암시적 형식 지정
        //변수의 형식이 명시적이지 않기 때문에 코드의 가독성을 떨어뜨리기 때문에 사용에 주의해야 함
        var chars = s.Select(x => char.IsUpper(x) ? char.ToLower(x) : char.ToUpper(x));
        var invertedCase = new string(chars.ToArray());
        
        Console.WriteLine(invertedCase);
    }
}

람다 표현식과 삼항연산자에 대해 알 수 있었다.
람다식은 x=> 우측에 있는 삼항 연산자를 입력하는 식으로 되어있다.

삼항 연산자는 참/거짓을 판단할 변수나 조건식을 지정한 뒤 ? 다음에 참과 거짓일 때 사용할 값을 나열한 것으로 : 앞은 true일 때, 뒤는 false일 때 사용할 값이다.

위 코드에 따르면 ? 앞의 IsUpper는 대문자 일 때 true를 반환하고 소문자일 때 false를 반환한다. true일 경우 대문자이므로 ToLower로 소문자로 변환하고 false일 경우 소문자이니 ToUpper로 대문자를 반환한다.

0개의 댓글

관련 채용 정보