2026/03/12 3

백준 - [단계별로 풀어보기 심화 1] 3003 킹, 퀸, 룩, 비숍, 나이트, 폰

//백준 3003 킹, 퀸, 룩, 비숍, 나이트, 폰int[] chessData = new int[6] { 1, 1, 2, 2, 2, 8 };string[] inputData = Console.ReadLine().Split(' ');for(int i = 0; i 이번 문제는 조건에 따라 결과가 달라지는 연산 문제라고 생각하여 처음에는 if문을 사용해 각 경우에 따라 다른 연산을 수행하도록 구현했다.하지만 구현을 마친 뒤 코드를 다시 살펴보니, 체스 말의 기준 개수에서 입력값을 빼는 단순한 연산만으로도 양수와 음수를 모두 처리할 수 있다는 것을 뒤늦게 깨달았다.즉, 부족한 경우에는 양수가 출력되고, 초과한 경우에는 음수가 출력되기 때문에 별도의 조건문 없이도 한 줄의 연산으로 문제를 해결할 수 있었다.

백준 - [단계별로 풀어보기 심화 1] 25083 새싹

이번 문제는 단순한 출력과 관련된 문제이다.이전에 C, C++, C#으로 풀었던 방식과 동일한 방법으로 문제를 해결했다.문자열을 그대로 출력해야 하는 문제이기 때문에 C#에서는 문자열 앞에 @를 붙여 문자열 리터럴을 그대로 출력하도록 구현했다.@를 사용하면 이스케이프 문자(\n, \t 등)를 해석하지 않고 문자열 그대로 출력할 수 있다.using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp3{ internal class Advanced1 { static void Main(string[] args) ..

백준 - [단계별로 풀어보기 문자열] 5622 다이얼

이번 문제는 문자열을 입력받아 각 알파벳에 대응되는 다이얼 시간을 계산하고, 그 값들의 합을 구하는 문제이다.처음에는 switch case문을 사용해 알파벳을 각각 분기하는 방식으로 접근했다. 이 방법은 직관적으로 이해하기 쉽지만, 알파벳 그룹이 많다 보니 코드의 길이가 길어지는 단점이 있었다. 다른 방법을 고민하던 중 C#에서 char 타입이 내부적으로 정수 값으로 처리되기 때문에 대소 비교 연산이 가능하다는 점이 떠올랐다. 이를 활용해 if / else if 조건문을 사용하여 문자 범위로 분기하도록 구현했다.예를 들어 입력 문자가 'A'부터 'C' 사이일 경우 inputData 했다. 이러한 방식으로 알파벳 그룹의 범위를 조건문으로 나누어 각 다이얼 시간을 누적하도록 구현하였다. //백준 5622번 ..