문제 링크 https://softeer.ai/practice/6282 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제 풀이 def dfs(x, y): if x = n or y = n: return False if graph[x][y] == 1 and not visited[x][y]: global count visited[x][y] = 1 count += 1 for i in range(4): nx = x + dx[i] ny = y + dy[i] dfs(nx, ny) return True return False n = int(input()) graph = [list(map(int, input())) for _ in range(n)] visited..
Python
문제 링크 https://softeer.ai/practice/6279 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제 풀이 그리디하게 앞에서부터 사용할 수 있는 부품을 차례로 집는 것이 최댓값을 찾을 수 있는 방법이라 생각했고, 그 방법대로 깔끔하게 해결할 수 있었습니다. n, k = map(int, input().split()) arr = list(input()) result = 0 for i in range(len(arr)): if arr[i] == 'P': for j in range(i - k, i + k + 1): if 0
문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14geLqABQCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 for _ in range(10): tc, length = map(int, input().split()) road = list(map(int, input().split())) adj = [[] for _ in range(100)] for i in range(length): adj[road[i * 2]].append(road[i * 2 + 1]) visited = [False] ..
문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14tDX6AFgCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 for tc in range(1, 11): length = int(input()) exp = list(map(str, input())) postfix = [] stack = [] stack_cal = [] prior = {'*': 3, '/': 3, '+': 2, '-': 2, '(': 1} for e in exp: if e.isdigit(): postfix.append(e) ..
문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14_DEKAJcCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 for tc in range(1, 11): n, m = input().split() nums = list(m) stack = list() for num in nums: if stack and stack[-1] == num: stack.pop() else: stack.append(num) print("#{} {}".format(tc, ''.join(stack))) 입력받은 문자열..
문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18TrIqIwUCFAZN SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 위상정렬을 활용해서 문제를 풀이했다. 위상정렬이란? - 순서가 정해져 있는 일련의 작업을 차례대로 수행해야 할 때 사용할 수 있는 알고리즘 - 사이클이 없는 방향 그래프의 모든 노드를 '방향성에 거스르지 않도록 순서대로 나열하는 것' - 기본 조건으로 위상 정렬을 수행할 수 있는 그래프는 사이클이 없는 방향 그래프이다. * 진입차수(Indegree) : 특정한 노드로 들어오는 ..
문제 링크 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 문제 문제 풀이 import sys, math input = sys.stdin.readline n = int(input()) a = list(map(int, input().split())) b, c = map(int, input().split()) result = n for i in a: i -= b if i > 0: result..
문제 링크 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 문제 문제 풀이 def check(line): runway = [False for _ in range(n)] for i in range(n - 1): # 높이가 같을 경우 패스 if line[i] == line[i + 1]: continue # 높이차가 1보다 클 경우 그 길은 지나갈 수 없음 if abs(line[i] - line[i + 1]) > 1: return False # 높 -> 낮 if line[..