심화문제 1 : 지뢰찾기
문제
풀이
- 슬라이싱을 이용하여
board
를 네개의 사분면으로 분할
- 관계 연산자를 이용하여 요소 값 변경
코드
import numpy as np
def solution(board, bombs):
board_1 = board[:5, :5]
board_2 = board[:5, 5:]
board_3 = board[5:, :5]
board_4 = board[5:, 5:]
board_1[(board_1 == bombs[0])] = 0
board_2[(board_2 == bombs[1])] = 0
board_3[(board_3 == bombs[2])] = 0
board_4[(board_4 == bombs[3])] = 0
board[:5, :5] = board_1
board[:5, 5:] = board_2
board[5:, :5] = board_3
board[5:, 5:] = board_4
return board
심화문제 2 :데이터 필터
문제
풀이
코드
import numpy as np
def solution(data, data_filter):
answer = np.matmul(data, data_filter/3)
return answer
심화문제 3 : 2022 그렙대학교 모집
문제
풀이
- 각 전형별 최종점수 계산식을
np.array()
에 저장한다.
np.dot()
와 슬라이싱을 이용하여 최종점수를 계산한다.
코드
import numpy as np
def solution(data):
answer = np.array([])
record = np.array([0.3,0.3,0.4])
essay = np.array([0.5,0.15,0.2,0.15])
test = np.array([0.3,0.4,0.3])
for student in data:
if student[1] == 0:
if np.dot(record, student[2:5]) >= 0.8:
answer = np.append(answer,int(student[0]))
elif student[1] == 1:
if np.dot(essay, student[5:9]) >= 0.75:
answer = np.append(answer,int(student[0]))
elif student[1] == 2:
if np.dot(test, student[6:9]) >= 0.75:
answer = np.append(answer,int(student[0]))
return answer