반응형
이번 문제는 문자열로 표현된 크로아티아 알파벳을 구분하여 몇 글자인지 세는 문제이다.
다양한 방법들을 생각할 수 있는데, 나는 Replace라는 메서드를 이용해서 크로아티아 문자를
한글자 아무 문자로 대체하고 길이를 세는 방법을 채택했다.
using System;
using System.Linq;
namespace unicoti {
class Program {
static void Main(string[] args) {
string input = Console.ReadLine() ?? "";
input = input.Replace("c=", "0")
.Replace("c-", "0")
.Replace("dz=", "0")
.Replace("d-", "0")
.Replace("lj", "0")
.Replace("nj", "0")
.Replace("s=", "0")
.Replace("z=", "0");
Console.WriteLine(input.Length);
}
}
}
아주 간단하지 않은가?
메서드 체이닝이라는 기법을 통해 일부를 생략할 수 있었다.
물론 배열과 for문을 이용하면 저 코드도 줄일 수 있겠다만 귀찮았다.
먼저 입력을 받고, Linq의 Replace를 이용해 크로아티아 알파벳을 0으로 바꿔줬다.
이후 한글자로 처리되었으니 길이를 읽어주면 바로 끝난다.
오늘의 느낀점)
메서드 체이닝이라는 기법을 배워서 신기했다.
저런 생략 기법이 있는 줄은 몰랐는데 새롭게 배우게 되었다.
지금은 자세히 모르지만 저녁에 자세히 찾아보고 메인 블로그에 글로 남겨야겠다.
직관적이기도 해서 과도한 생략도 아닐 것 같다.
원래 이런 생략은 과도하면 협업에서 괜히 문제가 생기기에
한번쯤 가독성과 효율성 중에 뭐가 우선일지 고민을 해야 한다.
새로운 기법을 인지하게 되어 기분이 좋다.
이상으로 도움이 되었길 바라며,
끝.
반응형
'코딩테스트 (C#)' 카테고리의 다른 글
백준 1316 : 그룹 단어 체커 (0) | 2024.12.12 |
---|---|
백준 1157 : 단어 공부 (1) | 2024.12.10 |
백준 10988 : 팰린드롬인지 확인하기 - C# 풀이 (0) | 2024.12.09 |
백준 2444 : 별 찍기 - 7 C# 풀이 (3) | 2024.11.03 |
백준 3003 : 킹, 퀸, 룩, 비숍, 나이트, 폰 - C# 풀이 (0) | 2024.11.03 |
댓글