일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 택시 기하학
- c#
- Probuilder
- 병역일터
- 영어
- 다이나믹프로그래밍
- unity engine
- 큐
- 닌텐도 스위치 2
- 마인크래프트
- i자형 인재
- 빅오 표기법
- windows 12
- URP
- blender
- 2025 대한민국 채용박람회
- 이진 탐색
- 카니발대학교 공대강국
- 그래픽 디자인
- 시작
- vrm posing desktop
- 배열 리스트
- 그리디 알고리즘
- 스택
- 잴다의 전설 티어스 오브 더 킹덤
- 브루트포스 알고리즘
- VRoid Studio
- 코딩테스트
- 라자냐
- 자료구조
Archives
- Today
- Total
WalkerJei's Lifelog
백준알고리즘 2566번 최댓값 C# 본문
세부 정보
- 사이트: 백준알고리즘
- 번호: 2566
- 문제명: 최댓값
- 언어: C#
- 분류: 구현
- 비고: 스폐셜 저지
문제
9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.
풀이
최댓값의 위치를 알아낼 때는 81개의 자연수 중 최댓값을 찾음과 동시에 그 위치 정보에 1을 더해서 받아오면 된다.
출력을 할 때는 Console보다 StreamWriter를 사용하면 시간을 단축할 수 있다.
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
// 81개의 자연수를 담을 격자판
int[,] grid = new int[9, 9];
// 81개의 자연수 중 최댓값
int maxValue = 0;
// 최댓값의 위치한 행렬번호
int[] gridPos = new int[2];
// 81개의 자연수 입력
for (int i = 0; i < 9; i++)
{
string[] input = sr.ReadLine().Split();
for (int j = 0; j < 9; j++)
grid[i, j] = Convert.ToInt32(input[j]);
}
// 81개의 자연수 중 최댓값과 위치정보 저장
for(int i = 0; i < 9; i++)
{
for (int j = 0;j < 9; j++)
{
if (maxValue <= grid[i, j])
{
maxValue = grid[i, j];
gridPos[0] = i + 1;
gridPos[1] = j + 1;
}
}
}
// 최댓값 출력
sw.WriteLine(maxValue);
// 최댓값 위치정보 출력
sw.WriteLine(gridPos[0] + " " + gridPos[1]);
sr.Close();
sw.Close();
후기
이 문제를 푸는 것은 20분도 안 되어서 성공한 것 같다. 어제 배운 것을 응용하는 자리인 만큼 지역 변수를 통해 입력을 받도록 설계했다. 이러다가 코딩테스트 볼 때 특수한 경우를 제외한다면 Console보다 Stream을 더 많이 쓸 것이다. 문제를 풀 때는 1차적으로 20분의 시간이 주어지고, 시간 내에 못 풀면 2차적으로는 스스로 고민해서 답을 찾으며, 그래도 답이 안 나온다 싶으면 3차적으로 피드백을 찾는 방법으로 결정했다. 내일은 그렇게 풀어볼 것이다.
'소프트웨어 개발 > 코딩테스트(기성 문제)' 카테고리의 다른 글
백준알고리즘 9012번 괄호 C# (0) | 2025.04.07 |
---|---|
백준알고리즘 10978번 세로읽기 C# (0) | 2025.04.06 |
백준알고리즘 2738번 행렬 덧셈 C# (0) | 2025.04.04 |
백준알고리즘 12789번 도키도키 간식드리미 C# (0) | 2025.04.03 |
백준알고리즘 1158번 요세푸스 문제 C# (0) | 2025.04.02 |