전체 글 307

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

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

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

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

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

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

[ BOJ/C# ] 2579 계단 오르기

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net DP 문제 중에서도 꽤나 헷갈렸던 문제이다. 경우의 수를 따져 최댓값을 구하였다. 조건들을 정확히 파악하는 것이 중요하다. n==1일 때와 n==2일 때의 조건을 정확히 나누지 않아 초반에 인덱스 에러가 났다.. using System; using System.IO; namespace B2579 { class Program { static void Main() { StreamReader sr = new Str..

[ BOJ/C# ] 9375 패션왕 신해빈

https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 입력에 따른 경우의 수를 구하는 문제이다. 각 의상 종류의 개수+1 (해당 종류를 입지 않는 경우+1) 을 곱하면 모든 조합의 경우의 수가 나온다. 모든 수에서 -1 (모든 종류를 입지 않는 경우..알몸)을 제외하면 문제에서 의도하는 경우의 수가 나온다. using System; using System.I..

[ BOJ/C# ] 11659 구간 합 구하기 4

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 구간 합은 모든 구간별의 누적 합을 구한 뒤, 지정 구간 이전의 누적 합을 빼면 나온다. using System; using System.IO; using System.Text; namespace B11659 { class Program { static void Main() { StreamReader sr = new StreamReader(Console.OpenStandar..

[ BOJ/C# ] 11651 좌표 정렬하기 2

https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net https://narmhye.tistory.com/entry/BOJC-11650-%EC%A2%8C%ED%91%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0 [ BOJ/C# ] 11650 좌표 정렬하기 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수..