본문 바로가기
728x90

알고리즘123

[ BOJ/C# ] 1316 그룹 단어 체커 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 아스키코드를 활용하였다. using System; using System.IO; namespace B1316 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter(Conso.. 2023. 10. 30.
[ 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.. 2023. 10. 29.
[ 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.. 2023. 10. 28.
[ 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(.. 2023. 10. 27.
[ 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로 바꾸어 .. 2023. 10. 25.
[ 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칸을 기준으로 한 배열로 보는 것이 편할 것이라 생각하였다. 그리고 사다리와 뱀을 따로 나누어 저장했는데, 푼 이후로 다른 분 코드를 찾아보니 나누지 않고 한 배열 안에 저장하더라!! 생각해 보니 굳이 나눌 필요가 없다고 생각되었다... 2023. 10. 24.
728x90