목록 code review (147)
KEEP GOING
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net [안전 영역] (중) from collections import deque n = int(input()) board = [] min_val, max_val = 100, 1 dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] def bfs(depth, i, j): # 0으로 방문처리 tmp[i][j] = 0 q = deque([(i, j)]) while q: x, y = q.popleft(..
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 코드 구현 (deque 사용) from collections import deque def find(parent, x): if parent[x] != x: return find(parent, parent[x]) return x def union(parent, x, y): x = find(parent, x) y = find(parent, y) if x < y: parent[y] = x else: parent[x] = y for tc in..
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 코드 구현 (방문처리시 dict 사용) from collections import deque def bfs(): que = deque([(N, 0)]) dic = dict() while que: now, count = que.popleft() # 해당 숫자를 이미 방문한 경우 if dic.get(now, 0): continue # 방문하지 않는 숫자인 경우 dic[now] = 1 if now == M: return count count..
[영역 구하기] https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 1. 코드구현 (중) - DFS import sys sys.setrecursionlimit(10**4) m, n, k = map(int, input().split()) board = [[0]*n for _ in range(m)] dx = [1,0,-1,0] dy = [0,1,0,-1] def dfs(y, x, arr): global areaCnt arr[y][x..
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 화물이 실려 있는 N개의 컨테이너를 M대의 트럭으로 A도시에서 B도시로 운반하려고 한다. 트럭당 한 개의 컨테이너를 운반 할 수 있고, 트럭의 적재용량을 초과하는 컨테이너는 운반할 수 없다. 컨테이너마다 실린 화물의 무게와 트럭마다의 적재용량이 주어지고, A도시에서 B도시로 최대 M대의 트럭이 편도로 한번 만 운행한다고 한다. 이때 이동한 화물의 총 중량이 최대가 되도록 컨테이너를 옮겼다면, 옮겨진 화물의 전체 무게가 얼마인지 출력하는 프로..
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do?courseId=AVuPDYSqAAbw5UW6&subjectId=AWUYEGw61n8DFAVT&lectureSeq=8&contestProbId=AWT-MRHKchIDFAVT&kataId= SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 코드 구현 def isRun(arr): tmp = sorted(arr) n = len(arr) for i in range(0, n-2): # 반례) 4 5 5 6 # if tmp[i] == (tmp[i+1] - 1) and tmp[i] == (tmp[..
itertools 라이브러리의 permutations를 이용하여 문제를 해결하려 했지만 시간 초과가 발생하였다. 시간초과 문제를 해결하기 위해서는 30의 배수가 되는 수의 조건을 이해하고 있어야 했다. 1. 30의 배수는 무조건 '0'을 포함하고 있다. ex) 30, 60, 90, .. 2. 30의 배수는 각 자리수의 합을 더한 값이 3의 배수가 된다. 270 => 2+7+0 = 9 % 3 == 0 1. 코드 구현 a = list(map(int, input())) # 0을 포함하지 않거나 각 자리수의 합이 3의 배수가 아닌 경우 if 0 not in a or sum(a) % 3 != 0: print(-1) # 30의 배수 else: # 내림차순 정렬 a.sort(key=lambda x:-x) data =..
Regular Expression(정규 표현식) 이란? - 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 쓰이는 형식 언어 - 문자열을 처리하는 방법 중의 하나 특정한 조건의 문자를 ‘검색’하거나 ‘치환’할 때 사용 - mySQL에서는 REGEXP라는 키워드를 사용하여 정규표현식을 처리함 [기본 형식] SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 REGEXP '정규표현식'; [기본 문법] ^ : 시작 * : 끝 [abc] : a, b, c 중 하나 ^[abc] : a, b, c 중 하나로 시작하는 문자 ^[abc].* : a, b, c 중 하나로 시작하는 문자열 [^abc] : a, b, c 전부 아님 \d : 하나의 숫자 . : 문자 .* : 문자의 반복 즉 문자열 [a-z] ..