\
1961. 숫자 배열 회전
·
Algorithm/SW Expert Academy Review
D2 Problem SW Expert Academy 숫자 배열 회전 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Solution 1. 90도, 180도, 270도는 사실 90도 회전을 1번, 2번, 3번한 것과 같다. 2. 그러므로 90도 회전 함수를 만들어서 여러번 사용하자. 3. 출력형식은 join()함수를 사용하는 방법이 더 간단하다. Code # 90도 돌리기 def turn90(arr): n = len(arr) tmp = [[0]*n for _ in range(n)] for i in range(n): for j in range(n): tmp[j][n-1-i] = arr[i][j] return tmp..
4839. [파이썬 S/W 문제해결 기본] 2일차 - 이진탐색
·
Algorithm/SW Expert Academy Review
D2 Problem SW Expert Academy 이진탐색 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Solution 1. 이진 탐색을 통해 원하는 값을 찾아보기 2. 이진 탐색을 위해 중앙값을 설정하고 이보다 작으면 왼쪽을 탐색, 크면 오른쪽을 탐색한다. 3. 탐색 속도를 올려주기 위해서, 찾고자 하는 값이 양 끝 값이면 바로 끝낸다. 4. 문제에서 중앙값을 계산하는 공식이 주어지기에 활용하자. 5. 카운트하는 위치를 주의하자. Code def binary_search(n, key):# While로 구현 cnt = 0 start = 1 end = n if 1 == key or n == key: # ke..
4843. [파이썬 S/W 문제해결 기본] 2일차 - 특별한 정렬
·
Algorithm/SW Expert Academy Review
D3 Problem SW Expert Academy 특별한 정렬 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Solution 1. 홀수와 짝수일 때를 구분하여 과정을 세운다. - 홀수 - Bubble 정렬과 같은 방법으로 첫 번째를 기준으로 그 뒤에 있는 숫자들 중 가장 작은 값과 자리를 바꾼다. - 이 과정을 첫 번째 숫자부터 마지막 이전 숫자까지 반복하면 오름차순으로 정렬이 가능하다. - 짝수 - 홀수와 같은 방식이지만, 내림차순으로 정렬해야하므로 최솟값 대신 최댓값을 찾아 자리를 교환한다. Code for test_case in range(1, int(input())+1): N = int(input()..
1209. [S/W 문제해결 기본] 2일차 - Sum
·
Algorithm/SW Expert Academy Review
D3 Problem SW Expert Academy Sum SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Solution 1. 가로와 세로, 그리고 각 대각선의 합을 구한 후, 최댓값을 구한다. Code max()함수 미사용 for _ in range(10): N = int(input()) arr = [list(map(int, input().split())) for _ in range(100)] cross1 = cross2 = 0 max = 0 for i in range(100): width = height = 0 for j in range(100): # 행 width += arr[i][j] # 열 heigh..
2001. 파리 퇴치
·
Algorithm/SW Expert Academy Review
D2 Problem SW Expert Academy 파리 퇴치 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Solution 1. 주워진 범위 내에서 파리채 만큼의 수를 더한다. 2. 이 중 최댓값을 찾는다. Code for test_case in range(1, int(input())+1): N, M = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] max_flies = 0 for i in range(N): for j in range(N): killed_flies = 0 # M x M범위 내 덧셈 for ..
4836. [파이썬 S/W 문제해결 기본] 2일차 - 색칠하기
·
Algorithm/SW Expert Academy Review
D2 Problem SW Expert Academy 색칠하기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Solution 1. 빨간색과 파란색의 범위를 따로 색칠한 후, 만약 한 곳에 색칠해진다면 보라색이 되므로 카운팅한다. Code for test_case in range(1, int(input()) + 1): N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] page_red = [[0 for _ in range(10)] for _ in range(10)] page_blue = [[0 for _ in range(10)] f..