091
[C#] TQC+ 문제 CS_109 본문
728x90
🔍C#: CS_109 .
입력값 중 첫번째와 마지막 문자를 숫자값인 경우 0->1, 1->2, 9->0으로 변환해주고, 문자의 경우 a->B,z->[, A->b, Z->{ 등으로 변환하시오. 이외의 문자가 들어온 경우 error를 반환하시오.
1. 문제 정답
using System;
namespace CS_108{
class CS_108{
static void Main(string[] args){
string input = Console.ReadLine() ?? ""; //??는 널 병합 연산자
string fi = ChangeValue(input, 0);
string si;
if(fi.Equals("error")){
si = "error";
} else if(fi.Length == 1) si = fi;
else si = ChangeValue(fi, fi.Length-1);
Console.WriteLine(si);
}
static string ChangeValue(string input, int index){
char[] chars = input.ToCharArray();
int value = input[index];
if(value > 47 && value < 58){
if(value == 57) chars[index] = (char)48; //9->0
else chars[index] = (char)(value+1); //+1씩 오르기
} else if (value > 64 && value < 91){
chars[index] = (char)(value+33);
} else if (value > 96 && value < 123){
chars[index] = (char)(value-31);
} else return "error";
return new string(chars);
}
}
}
//0-9的ASCII值為48-57,A-Z的ASCII值為65-90,a-z的ASCII值為97-122
2. 정답
- ??은 null 병합 연산자(null-coalescing operator)라고 하는 연산자로 왼쪽 값이 null이면 오른쪽 값을 사용하라는 의미를 가지고 있습니다. 프로그래밍에서 흔하게 발생하는 null 참조 에러(NullReferenceException)를 줄이기 위해 null의 가능성을 nullable을 엄격하게 관리합니다. string? name, name ??= "기본값";, name?.Length 와 같은 다양한 연산자를 이용하여 NULL과 관련된 연산자로 사용됩니다.
728x90
'Programming Language > C#' 카테고리의 다른 글
[C#] TQC+ 문제 CS_201 : (0) | 2025.05.06 |
---|---|
[C#] TQC+ 문제 CS_110 (0) | 2025.05.03 |
[C#] TQC+ 문제 CS_108 (0) | 2025.05.03 |
[C#] TQC+ 문제 CS_107 : (0) | 2025.04.29 |
[C#] TQC+ 문제 CS_106 : (0) | 2025.04.29 |