c# 107

[ BOJ/C# ] 4949 균형잡힌 세상

https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net Stack을 이용하여 푸는 문제이다. 전에 비슷한 문제를 풀었던 것 같다. 처음에 틀린 이유는, stack에 괄호가 남아있는 경우의 수를 계산하지 못했기 때문이다. using System; using System.IO; using System.Text; namespace B4949 { class Program { static void Main() { StreamReader s..

[ BOJ/C# ] 11050 이항 계수 1

https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 주어진 이항계수는 n!/(n-k)!k!로 값을 구할 수 있다. 이 팩토리얼을 풀어서 보면 (n부터 n-k전까지를 곱한 값)/(1부터 k까지 곱한 값)이니, 아래의 반복문으로 쉽게 풀이할 수 있다. using System; using System.IO; namespace B11050 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); Stre..

[ BOJ/C# ] 2108 통계학

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 중앙값과 최빈값에 대하여 좀 생각해야 하는 문제였다. 중앙값은 n이 짝수일 경우를 생각해야 했고, 최빈값은 최빈값이 여러 개 있을 경우 두 번째로 작은 값을 출력해야 했다. 이를 위해 값의 수를 세는 배열을 따로 만들어 구해주었다! using System; using System.IO; using System.Text; namespace B2108 { class Program { static void Main(..

[ BOJ/C# ] 18110 solved.ac

https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 굉장히 난관이 많았던 문제이다.... 1. 반올림을 내장함수가 아닌 직접 구현해야 했다. 2. 런타임 에러 (InvalidOperation) : 0의 경우를 넣지 않아 생긴 문제였다. 3. 시간 초과 : list 대신 int 배열로 바꾸었다. 4. int로 바꾸니 arr.Sum()에서 int로 값이 나와 값이 버려지는 문제가 생겼다. 이는 형식을 double로 바꾸어 ..

[ BOJ/C# ] 16928 뱀과 사다리 게임

https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 또 BFS 문제이다. 이번에는 뱀과 사다리라는 조건이 주어진 문제이다. 이 문제는 map을 x, y를 나누지 않고 100칸을 기준으로 한 배열로 보는 것이 편할 것이라 생각하였다. 그리고 사다리와 뱀을 따로 나누어 저장했는데, 푼 이후로 다른 분 코드를 찾아보니 나누지 않고 한 배열 안에 저장하더라!! 생각해 보니 굳이 나눌 필요가 없다고 생각되었다...

[ BOJ/C# ] 1697 숨바꼭질

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net BFS 문제이다. 많이 접해오던 BFS 문제와는 다르게 2차원배열로 이루어지지 않았다. 문제에서 주어진 3가지의 경우로 최소 시간을 구해야 한다. x-1, x+1, x*2의 가능 조건들을 설정한다. 주의해야 할 점은, x*2의 값이 K+1일 경우 x-1로 K를 만들어주는 경우도 있기 때문에 범위를 K+1로 설정해주어야 한다. 이 부분을 간과하여 처음에 틀렸다. using..

[ BOJ/C# ] 1654 랜선 자르기

https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 시간 관리를 위해 이분탐색을 효과적으로 사용해야 하는 문제이다. using System; using System.IO; namespace B1654 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = ne..

[ BOJ/C# ] 1966 프린터 큐

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 처음에는 Queue의 형식을 int로만 하고 index를 따로 더하고 초기화하며 계산했지만, 유동적인 크기를 계속해서 계산해주어야 했기 때문에 문제가 많았다. 해결하기 위하여 Queue의 형식을 (int, int)로 바꾸고 초기의 인덱스 번호를 Item2에 넣어주어 고정시켜 해결하였다! using System; using System.IO; using System.Text; namespace B196..

[ BOJ/C# ] 14940 쉬운 최단거리

https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net BFS 문제이다. 다른 문제와 차별점이 있다면 목표 지점부터의 거리를 계산하여 출력하는 것이다. 비슷하지만 이런 차별점이 BFS의 재미인 듯하다🤭🤭 using System; using System.IO; using System.Text; namespace B14940 { class Program { static int N, M; static int[,]..

[ BOJ/C# ] 21736 헌내기는 친구가 필요해

https://www.acmicpc.net/problem/21736 21736번: 헌내기는 친구가 필요해 2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 www.acmicpc.net BFS로 풀었다. 비교적 간단한 문제였다. using System; using System.IO; namespace B21736 { class Program { static int N, M; static int count = 0; static int[,] map = new int[601, 601]; static bool[,] visited = new bool[601, 601]; sta..