반응형
1. 2차원 배열에서 최대값 & 최소값 & 합 구하기 (Map 함수 활용)
- map 함수의 기본 구성은 map(function,iterable)
- function 부분에 다른 기능을 추가해서 2차원 리스트에 적용 할 수 있음.
# 2차원 배열에서 반복문을 사용하지 않고 특정 값 구하기 x = [[1,0,-30,6,5],[3,4,7,8,1],[3,2,6,7,1],[-1,2,3,6,8],[99,1,2,3,6,8]] print(max(map(max, x))) # 최대값 99 print(min(map(min, x))) # 최소값 -30 print(min(map(max, x))) # 내부 배열의 최대 값들 중에서 가장 작은 값 6 print(max(map(min, x))) # 내부 배열의 최소 값들 중에서 가장 큰 값 1 print(sum(map(sum, x))) # 2차원 배열의 모든 값의 합
2. 리스트를 특정 조건에 맞게 출력할 때 (Join 함수 활용)
- 백준 문제 풀이시 요구사항대로 출력해야 할 경우 사용
- 한줄로 이어쓰거나, 여러줄로 분할해서 써야 할 경우 사용
# join 함수는 내부 요소들이 Str 타입일 경우만 가능! y = [0,1,2,2,3] print(''.join(map(str,y))) # 01223 print(','.join(map(str,y))) # 0,1,2,2,3 print('\n'.join(map(str,y))) ``` 0 1 2 2 3 ```
3. 원하는 크기에 해당하는 값만 출력해 리스트로 만들 경우 (할당 연산자 활용)
- 파이썬 3.8부터 사용 가능한 할당연산자 := 사용
- :=를 활용시 코드를 많이 줄일 수 있음
- 대표적으로 아래 링크의 문제에서 활용 가능
[i for _ in range(N) if len(i:= input()) >= M]
- 위처럼 구성시 길이가 M 이상인 값을 리스트로 저장 가능
https://www.acmicpc.net/problem/20920
반응형
4. 2차원 리스트 안의 특정 요소 갯수 세기
2차원 리스트 안의 특정 갯수를 세고자 할 때 활용하면 좋은 방법
일반적인 방법보단 sum이나 map함수를 사용하면 줄이기 좋음
# 0의 갯수를 셀 경우 y = [[1,0,0,0,1],[1,1,1,0,1],[1,0,1,1,0],[1,1,1,0,0],[0,1,1,1,1]] # 일반적인 반복문 count = 0 for i in y: for j in i: if j == 0: count += 1 print(count) # 9 # sum을 활용한 방법 count = sum([row.count(0) for row in y]) print(count) # 9 # map과 lambda를 활용한 방법 count = sum(map(lambda x: x.count(0), y)) print(count) # 9
반응형
'언어별 개념 정리 > Python' 카테고리의 다른 글
[파이썬] 탐색 알고리즘 정리 - 백트래킹 (1) | 2023.03.12 |
---|---|
[파이썬] 알고리즘 - 트리 순회 (전위, 중위, 후위) (python) (0) | 2023.02.27 |
[파이썬] 탐색 알고리즘 정리 - 깊이 우선 탐색(DFS) (python) (0) | 2023.02.26 |
[파이썬] 탐색 알고리즘 정리 - 너비 우선 탐색(BFS) (python) (0) | 2023.02.22 |
소수 판별 알고리즘 - 에라토스테네스의 체 (0) | 2023.02.21 |
댓글