반응형 코딩테스트 준비220 백준 C# - 2178 +) 풀이 최단거리 문제는 BFS를 사용하는 것이 좋다.101111101010101011111011먼저 BFS의 최단 경로 과정을 보면 아래와 같이 진행된다. 해당 깊이에 갈 수 있는 주변 칸을 탐색하고 다음 깊이로 넘어가는 것을 확인할 수 있다.BFS가 진행됨에 따라 칸의 값 갱신BFS를 진행하면서 현재 칸을 방문할때 이전의 방문했던 칸에 1을 더한 값을 현재 셀에 저장하여 몇 번째 방문한 것인지 를 저장하면 마지막 칸에 최단 경로가 저장된다. graph[newX, newY] = graph[now.Item1, now.Item2] + 1;BFS 알고리즘 짜기01 큐 초기화 및 시작 지점 추가하기Queue> queue = new Queue>();// 시작 좌표값 queue에 추가queue.Enqueue(new Tup.. 2025. 7. 21. 백준 C# - 17219 코드 전문using System;using System.Collections.Generic;using System.Text;namespace baek2{ class Program { public static void Main() { string[] token = Console.ReadLine().Split(); int n = int.Parse(token[0]); int m = int.Parse(token[1]); Dictionary dic = new Dictionary(); StringBuilder sb = new StringBuilder(); .. 2025. 7. 17. 백준 C# - 1235 +) 풀이 오랜만에 푸는 구현 문제!알고리즘Distinct를 사용해서 중복된 숫자를 없애주었다. 만약 결과가 학생 수와 같다면 이는 학생번호가 서로 다르다는 뜻이므로 결과를 출력하도록 하였다.121234512123560033445예를 들어 첫번째로 5,6,5의 Distince 결과는 5,6이므로 2가지가 되니까 학생수와 다르니까 정답이 아니다. 두번째로 45,56,45의 결과또한 2가지이므로 정답이 아니다. 마지막 세번째로는 345,356,445가 되니까 answer을 출력하고 return되도록 하였다.string[] numbers = new string[n];for (int i = students[0].Length - 1; i >= 0; i--){ int count = 0; for (int j = n-.. 2025. 7. 15. 백준 C# - 1309 +) 풀이 DP를 이용해서 풀어야한다.점화식 구하기01 일단 적어보자N = 1,2,3이였을 경우의 수를 다 적어보자 그러면 아래와 같이 나온다.02 표로 정리표를 확인해보면 관계성을 구할 수 있으므로 아래와 같은 점화식이 나온다. 02 % 9901모듈려 연산 C# - 모듈러 연산(나머지 분배 법칙)백준에서 DP관련 문제를 풀때 출력 부분에 큰 수로 나눈 나머지를 구하라는 부분이 계속 있어서 이부분이 왜 필요한지 자세히 알고 싶어졌다. 모듈러(Modulo) 나눗셈의 나머지를 계산하는 연산이code-piggy.tistory.com 코드 전문using System;namespace baek2{ class Program { public static void Main() { .. 2025. 7. 11. 백준 C# - 1918 +) 풀이 이 문제를 풀기전에 아래 문제를 먼저 푸는 것을 추천한다.백준 C# - 1935 백준 C# - 1935 +) 풀이풀이후위 표기법으로 계산하는 문제이다.제시받은 문자열안의 문자들을 순서대로 확인하여 연산자인지 피연산자인지 확인한다. 만약 피연산자인 경우 stack에 push하고 연산자인 경우 두번의 Popcode-piggy.tistory.com중위 표기법에서 후위 표기법으로 바꾸는 문제이다.중위 표기법에서 후위표기법으로 바꿀때 연선자 우선순위를 고려해야 한다.01 우선순위 메서드static int Precedence(char c){ switch (c) { case '+': case '-': return 1; case '*': .. 2025. 7. 4. 백준 C# - 1935 +) 풀이 풀이후위 표기법으로 계산하는 문제이다.제시받은 문자열안의 문자들을 순서대로 확인하여 연산자인지 피연산자인지 확인한다. 만약 피연산자인 경우 stack에 push하고 연산자인 경우 두번의 Pop을 통해 연산을 수행하도록한다.예제 문제 풀이5ABC*+DE/-12345과정그림과 같이 흐름만 알게된다면 쉽게 풀 수 있다.코드using System;using System.Collections.Generic;namespace baek2{ class Program { static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); string line = Console.Read.. 2025. 7. 1. 이전 1 2 3 4 ··· 37 다음 반응형