문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 위의 그림과 같이 행렬의 모든 합을 구하고, 최대 값을 반환하는 문제이다. 이는 파이썬의 경우 간단하게 해결할 수 있다. trans_array = list(map(list, zip(*array))) 위의 행렬을 `numpy`를 사용하지 않고 전치하기 위해서는 위와 같이 전치할 수 있다. 따라서 전치시키게 되면 행렬을 합을 보다 편하게 구할 수 있다. # ↘ 대각선의 합 left_right = sum([array[i][i] for i in range(100)]) # ↙ 대각선의 합 right_left = sum([array[i][99 - i] for..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 상자의 높낮이가 주어질 때, 가장 높은 곳에 있는 상자를 가장 낮은 곳에 있는 상자에 옮겨 평탄화를 하는 문제이다. 문제에서 평탄화를 하기 횟수(dump)가 주어질 때, 평탄화 후 가장 높은 곳의 위치와 가장 낮은 곳의 위치의 차를 반환하면 된다. 코드 for test_case in range(1, 11): dump = int(input()) box = list(map(int, input().split())) for _ in range(dump): box[box.index(max(box))] -= 1 box[box.index(min(box))] +..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 빌딩의 높낮이가 주어질 때, 하나의 빌딩을 기준으로 좌측으로 2칸, 우측으로 2칸의 빌딩 중 낮은 빌딩이 있는 경우를 찾는 문제이다. 이때 빌딩의 높이가 좌우측의 빌딩 중 가장 높은 빌딩보다 높은 층은 전망권이 확보된 세대수이다. 주어진 입력값에서 전망권이 확보된 세대수를 반환하면 된다. 코드 for test_case in range(1, 11): length = int(input()) buildings = list(map(int, input().split())) answer = 0 for idx in range(2, length - 2): cur..
문제 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 풀이 계단 아래 시작점부터 꼭대기에 위치한 도착점까지 도착하고자 한다. 각 계단에는 획득할 수 있는 점수가 있으며, 계단을 밟을 수 있는 규칙이 존재한다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안된다. 마지막 도착 계단은 반드시 밟아야 한다. 따라서 이 문제는 경우의 수를 뻗어 가능한 경우 중 가장 큰 수를 찾는 문제와 같다. 계단의 개수가 300개 이하이므로 `DFS`로 풀게 될 경우 당연히 시간 초과가..