문제https://www.acmicpc.net/problem/10026 풀이구역의 개수를 구하는 알고리즘은 적록색약 여부와 무관하게 dfs로 구현할 수 있다.import syssys.setrecursionlimit(10**6)N = int(input())picture = []for _ in range(N) : picture.append(list(input()))dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]def dfs(x, y, c) : # c : 색깔(R, G, B) visited[x][y] = 1 # 방문처리 for i in range(4) : nx = x + dx[i] ny = y + dy[i] if (0
문제https://www.acmicpc.net/problem/2468 풀이높이가 h이하인 지점을 모두 잠기게 만드는 비가 내린다고 했을 때, 물에 잠기지 않는 안전한 영역의 개수를 구하면 되는 문제이다.비가 오지 않는 경우도 있을 수 있으므로 h = 0, 1, ..., (지역의 최대 높이 - 1) 에 대해 안전 영역의 개수를 모두 구하고, 그 중 최댓값을 구하면 답이 된다.import syssys.setrecursionlimit(10**6)N = int(input())maps = []max_h = 0 # 지역의 최대 높이 저장for _ in range(N) : temp = list(map(int, input().split())) maps.append(temp) max_h = max(max_h, m..
문제https://www.acmicpc.net/problem/28438 풀이첫 번째 시도한 줄씩 입력을 받으면서 '1 r v'인지 '2 c v'인지 구분하며 행렬 연산을 수행했다.더보기N, M, Q = map(int, input().split())mat = [[0 for _ in range(M)] for _ in range(N)]for _ in range(Q) : i, j, k = map(int, input().split()) if i == 1 : r, v = j, k for l in range(len(mat[r-1])) : mat[r-1][l] += v else : c, v = j, k for l in range(len(mat)) : mat[l][c-1] +..
문제https://www.acmicpc.net/problem/2156 풀이n = int(input())amount = []for _ in range(n) : amount.append(int(input()))d = [0] * nif n >= 1 : d[0] = amount[0] if n >= 2 : d[1] = amount[0] + amount[1]if n >= 3 : d[2] = max(amount[0] + amount[2], amount[1] + amount[2], d[1]) # 2번째 와인을 마시지 않는 경우도 고려if n >= 4 : for i in range(3, n) : d[i] = max(d[i-2] + amount[i], d[i-3] + amount[..
문제https://www.acmicpc.net/problem/30804 풀이첫 번째 시도조건 : 두 종류 이하의 과일만 사용탕후루의 최대 길이(N)부터 줄여가면서 모든 가능한 경우에 대해 문제의 조건을 만족하는지를 살폈다.더보기N = int(input())S = list(map(int, input().split()))start, end = 0, Nanswer = 0# 탕후루 길이별로 체크for i in range(N, 0, -1) : for j in range(0, N-i+1) : check = S[j:(j+i)] if len(set(check)) → 시간 초과 두 번째 시도 (성공)조건 : 두 종류 이하의 과일만 사용투 포인터를 사용해 조건에 맞는 가장 긴 부분 리스트를 찾는 문제로 접근했..
문제https://www.acmicpc.net/problem/27966 풀이1번 노드를 가운데에 두고, 나머지 노드들이 모두 1번 노드와 연결된 형태일 때 정점 사이의 거리의 합이 최소가 될 수 있다.N = int(input())print((N-1)**2)for i in range(2, N+1) : print(1, i)