본문 바로가기

파이썬47

백준 2468번 : 안전영역 (Python) 출처 : https://www.acmicpc.net/problem/2468 def search_safe(n, area, rain) : # 찾아낸 안전영역 그룹의 수 cnt = 0 # 영역을 탐색했는지 체크하는 배열 (탐색 했음 = 0, 아직 안했음 = 1) area_searched = [[1] * n for i in range(n)] for i in range(n) : for j in range(n) : # 아직 탐색하지 않은 안전영역 찾으면 탐색 시작 if area[i][j] > rain and area_searched[i][j] == 1 : cnt += 1 # 안전영역인지 탐색할 후보 영역의 좌표 목록 to_search = [[i, j]] # 후보 목록에 값이 남아있으면 탐색 계속 while to_s.. 2022. 12. 12.
다차원 리스트 값 바꿀 때 여러 줄이 같이 바뀐다면 다차원 리스트 값 바꿀 때 여러 줄이 같이 바뀐다면¶ 일반적으로 다차원 리스트에서 값을 변경할 때는 인덱스를 지정해 원하는 값을 넣어주면 된다. In [21]: x = [[3, 5, 6, 7], [-3, 0, 4, 5], [-9, 7, 8, 1]] print(x) [[3, 5, 6, 7], [-3, 0, 4, 5], [-9, 7, 8, 1]] In [22]: x[2][1] = 99 print(x) [[3, 5, 6, 7], [-3, 0, 4, 5], [-9, 99, 8, 1]] 그러나 모든 값이 0인 3 * 4 리스트를 다음과 생성하니 하나의 값만 바꿨는데도 여러 줄의 값이 한꺼번에 바뀐 것을 볼 수 있다. In : y1 = [[0] * 4] * 3 print(y1) [[0, 0, 0, 0], [0, 0.. 2022. 12. 9.
백준 1083번 : 소트 (Python) 출처 : https://www.acmicpc.net/problem/1083 n = int(input()) nums = list(map(int, input().split())) s = int(input()) # 배열 완료된 숫자 개수 done = 0 # 이상적 배열 ideal = sorted(nums, reverse=True) while s > 0 : if nums == ideal : break range_max = max(nums[done : min(n, done+s+1)]) # print("배열 완료된 숫자 개수", done) # print("현 범위", nums[done : min(n, done+s+1)]) # print("현 범위 최대", range_max) idx = nums[done:].inde.. 2022. 12. 7.
파이썬 표준 라이브러리 itertools 사용하기 (1) 파이썬 표준 라이브러리 Itertools 사용하기 (1)¶ itertools를 사용하면 for문으로 힘겹게 낑낑거리던 작업을 손쉽게 해결할 수 있다. In [1]: import itertools as it 1. 무한 iterator 생성¶ it.count(start, step=1) start 부터 step만큼 증가하는 수 무한히 생성. 기본 step = 1 In [2]: for i in it.count(10) : print(i, end=" ") if i == 20 : break 10 11 12 13 14 15 16 17 18 19 20 In [3]: for i in it.count(10, 2) : print(i, end=" ") if i == 20 : break 10 12 14 16 18 20 it.cy.. 2022. 12. 5.