본문 바로가기

BOJ109

[ 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.