-
[구름톤 챌린지 Week2(2)] 완전 탐색 중심 / 바둑판 원하는 값으로 채우는 방법Challenges/구름톤 챌린지 2023. 8. 24. 19:22
입력받는 정보를 2차원 배열에 저장해야 하는 경우가 발생한다. 이때 살짝 멈칫,하게 되지 않도록 리마인드 차 이 글을 쓴다.
사실 코드를 쓰기 나름이지만, 일단 다음과 같다.
방법 : 1차원 배열을 선언 후, 안에 값을 리스트(1차원)로 지정
matrix = [] for _ in range(N): row = list(input().split()) matrix.append(row)
방법2 : 마찬가지를 리스트 컴프리핸션으로
B = [input().split()) for _ in range(N)]
2차원 배열에서 최댓값을 찾는 방법
처음에는 max(R)이라고 단순히 하면 될 줄 알았는데, 그게 아니었다.
max(max(row) for row in R)
list comprehension과 내장 함수 max()를 사용하여 2차원 배열에서 최대값을 찾습니다.
1) inner max(row) : 이 부분은 각 행(row)에서 최대값을 찾습니다. 2차원 리스트 R의 각 행을 순회하며, 그 행의 최대값을 찾습니다.
예를 들어, R이 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]라면, 이 부분은 [3, 6, 9]라는 새로운 리스트를 만듭니다.
각 행에서의 최대값 3, 6, 9를 찾아낸 것입니다.
2) outer max(...): 이 부분은 위에서 찾아낸 각 행의 최대값들 중에서 또 최대값을 찾습니다. [3, 6, 9]에서 최대값은 9입니다.
3) list Comprehension for row in R: 이 부분은 2차원 리스트 R의 모든 행을 순회합니다.
종합하면, 이 한 줄의 코드는 2차원 배열 R의 모든 원소를 검사하여 최대값을 찾아내는 작업을 수행합니다.
시간복잡도는 O(N^2) 입니다.
'Challenges > 구름톤 챌린지' 카테고리의 다른 글
[구름톤 챌린지 Week4(2)] 시뮬레이션, 구현시 주의점, 챌린지 마무리 (0) 2023.09.10 [구름톤 챌린지 Week4(1)] 그래프 탐색 전략 (DFS, BFS) (0) 2023.09.10 [구름톤 챌린지 Week2(1)] 완전 탐색 중심 / 문자열 쪼개기 / 2차원 배열 (0) 2023.08.22 [구름톤 챌린지 Week1(2)] 구현 중심 문제 테크닉 기본 (0) 2023.08.19 [구름톤 챌린지 Week1(1)] 더는 미룰 수 없다, 코딩테스트 / 코테기본 (0) 2023.08.18