본문 바로가기
728x90

전체 글239

[ 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.. 2023. 10. 19.
[ BOJ/C# ] 2231 분해합 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net using System; using System.Collections.Generic; using System.Linq; using System.IO; namespace _2231 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); Str.. 2023. 10. 18.
[ BOJ/C# ] 2292 벌집 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 전에 CT에서 많이 본 유형의 문제이다. 각 원형의 겹을 하나로 생각하면 된다. using System; using System.IO; namespace B2292 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWrit.. 2023. 10. 17.
[ BOJ/C# ] 2609 최대공약수와 최소공배수 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 오랜만에, 간단한 문제지만 꼭 해봐야 할 문제로 생각되는 최대공약수와 최소공배수 문제를 풀었다. 유클리드 호제법만 안다면 간단하게 풀 수 있다. using System; using System.IO; using System.Text; namespace B2609 { class Program { static int Cal(int a, int b) { int c; while (b != 0) { c = a % b; a = b; b = c; } return a; } st.. 2023. 10. 16.
[ BOJ/C# ] 10026 적록색약 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 이번에도 BFS 문제이다! 같은 BFS문제여도 매번 색다른 조건이 주어져 항상 재밌다..! 이 문제는 접근하는 방법이 여러 가지 있을 듯하다. 나는 BFS와 BFSRG 메서드를 만들어 하나의 맵과 방문리스트로 풀어나갔다. using System; using System.IO; using System.Text; namespace B10026 { class Program { static int.. 2023. 10. 14.
[ BOJ/C# ] 2667 단지번호붙이기 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net BFS 문제에 재미 붙여서 계속 찾아서 풀게 된다..! 이제는 완전히 문제를 보면 어떤 식으로 풀어나갈지 그려진다. 이 문제에서 주의할 점은, 단지 수를 출력한 뒤에 각 단지에 속한 집의 수를 '오름차순'으로 출력해야 한다는 점이다. using System; using System.IO; using System.Text; namespace B2667 { class Program { static in.. 2023. 10. 13.
[ BOJ/C# ] 2178 미로 탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 이번에도 BFS 문제이다. 이번에도 Queue 2개로 문제를 해결하였는데, 이동 가능한 길이 2개 이상일 경우 때문이다. 처음에 메모리 초과가 떴는데, visited 방문 리스트를 체크해 주는 지점을 제대로 설정하지 않아서 생긴 문제였다. using System; using System.IO; namespace B2178 { class Program { static int N, M; static int min = 1; stati.. 2023. 10. 12.
[ BOJ/C# ] 7569 토마토 ( 3차원 배열 ) https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 전의 토마토 문제가 조금 변형된 문제이다. 3차원 배열을 한 번도 활용해 본 적이 없어 활용하여 풀어보았다. 단순히 전의 문제에서 3차원 요소만 더해주어 같이 검사하는 것이 아니라, 각각 검사하고 조건을 만들어주어야 했다. 재밌는 문제였다! using System; using System.IO; using System.Text; namespace B7569 { class P.. 2023. 10. 11.
[ BOJ/C# ] 7576 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net BFS 문제이다. 이전의 양배추에서 배운 내용을 기억해 내며 직접 풀어보았다. Queue를 2개 만들어 다음 날 검사할 좌표를 다른 큐에 넣어주었다. 모두 0, -1, 1일 경우를 잘 체크해 주어야 한다. using System; using System.IO; using System.Text; namespace B7576 { class Program { static int M, N.. 2023. 10. 10.
[ BOJ/C# ] 1012 유기농 배추 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 탐색 문제이다. 너비 우선 탐색인 bfs로 풀었다. 이전에 푼 탐색 문제들은 탐색할 좌표가 딱 주어졌다면, 이 문제는 다음 탐색을 시작할 좌표도 찾아야 했다. using System; using System.Text; using System.IO; namespace B1012 { class Program { static int M, N, K; static int[,] map = new int[51, 51]; .. 2023. 10. 9.
[ BOJ/C# ] 7568 덩치 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net using System; using System.ComponentModel; using System.IO; using System.Text; namespace B7568 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw =.. 2023. 10. 9.
[ BOJ/C# ] 2805 나무 자르기 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 처음엔 이중 반복문으로 풀어 테스트케이스들은 맞았지만, 시간초과가 떴다. 이분탐색을 어떻게 잡아야 할지 감이 안 와 다른 답들을 보며 공부하였다. 반복문과 내용 자체는 비슷했지만 이렇게 표현할 수 있구나를 알 수 있었다. 나중에 다시 한번 풀어봐야겠다!! using System; using System.IO; namespace B2805 { class Pro.. 2023. 10. 7.
728x90