본문 바로가기
728x90

전체 글239

[ BOJ/C# ] 11047 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 언어를 배우는 과정에서 초반에 자주 보게 되는 유형의 문제 같다. 동전을 가장 큰 단위부터 나머지가 0이 될때까지 나눠주면 된다. using System; using System.Text; namespace B11047 { class Program { static void Main() { StreamReader sr = new Str.. 2023. 9. 15.
[ BOJ/C# ] 2577 숫자의 개수 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 아스키코드를 이용하여 풀었다. a*b*c를 string으로 만들어 string은 char의 배열이라는 것을 이용하였다. using System; using System.Text; namespace B2577 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter.. 2023. 9. 14.
[ BOJ/C# ] 10818 최소, 최대 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net class 1++ 까지 채우고 싶어 풀게 되었다. 배열의 최솟값, 최댓값은 Min, Max로 구할 수 있다. using System; using System.Text; namespace B10818 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStanda.. 2023. 9. 13.
[ BOJ/C# ] 1929 소수 구하기 _ 에라토스테네스의 체 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 이번에는 n이하의 소수를 구하는 문제였기 때문에 에라토스테네스의 체를 이용하였다. 에라토스테네스의 체를 이해한 개념을 바탕으로 간단히 말하자면, 1) 우선 n까지의 각 수를 넣은 n크기의 배열을 만든다. 2) 이 배열을 앞에서부터 시작하여, 현재 타겟 수의 값을 0으로 만든다. 3) 이를 n까지 반복하면 소수만 남는다. (2부터 시작하여 4, 6, 8...2n모두 0으로 만든다, 다음 3에서는 값이 0이 아닌 9, 15, 21... 2023. 9. 11.
[ BOJ/C# ] 1978 소수 찾기 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 소수판별은 꽤나 기본적이면서 중요한 알고리즘이라고 생각해 풀어보았다. 에라토스테네스의 체가 생각났지만, 이처럼 1000까지의 수 내의 주어진 수만 판별해야 한다면 다른 방법이 좋을 수도 있겠다고 생각했다. 다음과 같은 방식으로 한다면 시간복잡도는 O(n√n)이다. 각각의 수 O(√n)의 총 O(n√n). using System; namespace B1978 { class Program { static void Main() { StreamReader sr = new .. 2023. 9. 10.
[ BOJ/C# ] 1620 나는야 포켓몬 마스터 이다솜 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net Dictionary와 시간복잡도를 고려하여 푸는 문제다. 시간초과로 많은 시도를 했다. 1. 빠른 입출력 사용_StreamWriter와 StringBuilder로 빠른 출력이 되도록 함 2. sb.AppendLine이 아닌 '\n'이 빠르다. 3. 각각 int, string가 key인 Dictionary를 두 개 만들어줌 _처음에는 하나로 만들어 int인 key를 가져.. 2023. 9. 9.
[ BOJ/C# ] 8958 OX퀴즈 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net using System; namespace B8958 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()); int n = int... 2023. 9. 9.
[ BOJ/C# ] 10809 알파벳 찾기 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 알파벳의 아스키코드를 이용하였다. using System; using System.Text; namespace B10809 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter(Console... 2023. 9. 7.
[ BOJ/C# ] 10773 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 최근의 수를 지운다는 점에서, stack을 사용하면 될 것 같았다. 역대급으로 빨리 푼 문제같다! using System; namespace B10773 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter s.. 2023. 9. 7.
[ BOJ/C# ] 1874 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제의 이해와 풀이과정에서 많이 헷갈렸다. 그래서 주석으로 한 단계씩 최대한 풀어가며 설명해두었다. [Stack에는 1부터 오름차순으로 정수를 넣는다. ] 풀이 과정 1. 주어진 정수를 마지막 정수가 올 때까지 반복한다. 2. Stack의 최댓값(혹은 가장 뒤의 값)_Stack.Max 혹은 Stack.Peek 상관없.. 2023. 9. 5.
[ BOJ/C# ] 2164 카드2 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net Queue를 사용하면 쉽게 풀 수 있는 문제였다. using System; namespace B2164 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter(Console.OpenStandardOutput.. 2023. 9. 5.
[ BOJ/C# ] 1920 수 찾기 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net list.Contains로 list에 포함되었는지 찾아준다. using System; using System.Text; namespace B1920 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWri.. 2023. 9. 3.
728x90