본문 바로가기

PS/백준

[BOJ] 백준 2566 최댓값 (Swift)

반응형

문제

https://www.acmicpc.net/problem/2566

 

2566번: 최댓값

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.

www.acmicpc.net

풀이

2차원 배열중 가장 큰 최대값과, 행과 열을 출력해주면 되는 문제입니다.

1차원 배열을 for문으로 돌면서 최댓값을 찾는것과 유사합니다. 단순히 2차원 배열로 바뀌었을 뿐입니다.

2차원 배열 -> 1차원 배열로 만들어주는 flatMap 고차함수를 사용해서 최댓값을 구할 수 있습니다.

저는 flatMap으로 최댓값을 구해준 후, 2차원 배열을 탐색해주면서 최댓값과 같다면 최댓값과 행과 열을 출력해주도록 구현했지만,

최댓값을 0으로 초기값을 준 후, 비교를 하면서 최댓값을 갱신해주고 최댓값이 갱신된다면, 행과 열의 값도 갱신해주는 방식으로 풀이해도 무방합니다.

소스코드

후기

2차원 배열을 순회하는 법에 대해 알고있다면 쉽게 풀 수 있는 문제인 것 같습니다.
flatMap 을 사용해 2차원 배열을 1차원 배열로 변환하는 방법을 알고있으면 좋을 것 같다는 생각이 들었습니다.

반응형