본문 바로가기

반응형

2차원 배열

(3)
[BOJ] 백준 10798 세로읽기 (Swift) 문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 풀이 n * n 형태의 2차원 배열이라면 세로로 읽는 것은 아주 간단할 것입니다. 하지만 이번 문제의 경우 글자의 개수가 다르기 때문에, 세로로 읽다보면 없는 index에 접근하게 되기 때문에 런타임 에러가 발생할 것입니다. 이것을 어떻게 해결할 수 있을까요? 글자의 개수는 최소 1 ~ 최대 15개 입니다. [5][15] 크기의 2차원 배열을 먼저 만들어주고, 값은 빈 문자열로 초기화..
[BOJ] 백준 2566 최댓값 (Swift) 문제 https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 풀이 2차원 배열중 가장 큰 최대값과, 행과 열을 출력해주면 되는 문제입니다. 1차원 배열을 for문으로 돌면서 최댓값을 찾는것과 유사합니다. 단순히 2차원 배열로 바뀌었을 뿐입니다. 2차원 배열 -> 1차원 배열로 만들어주는 flatMap 고차함수를 사용해서 최댓값을 구할 수 있습니다. 저는 flatMap으로 최댓값을 구해준 후, 2차원 배열을 탐색해주면서 최댓값과 같다면 최댓값과 행과 열을 출력해주도록 구현..
[BOJ] 백준 2738 행렬 덧셈 (Swift) 문제 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 풀이 이 문제는 2차원 배열에 대한 이해만 있다면 쉽게 풀 수 있습니다. N * M 행렬을 입력 받은 후, 2중 포문을 돌려 같은 행과 열에 대해 덧셈을 해주고, 출력만 해주는 문제입니다. 소스코드 후기 2차원 배열에 대해 이해하고 있다면 쉽게 풀 수 있는 문제 인 것 같습니다.

반응형