1. 문제 어른 상어가 마법사가 되었고, 파이어볼을 배웠다. 마법사 상어가 크기가 N×N인 격자에 파이어볼 M개를 발사했다. 가장 처음에 파이어볼은 각자 위치에서 이동을 대기하고 있다. i번 파이어볼의 위치는 (ri, ci), 질량은 mi이고, 방향은 di, 속력은 si이다. 위치 (r, c)는 r행 c열을 의미한다. 격자의 행과 열은 1번부터 N번까지 번호가 매겨져 있고, 1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결되어 있다. 파이어볼의 방향은 어떤 칸과 인접한 8개의 칸의 방향을 의미하며, 정수로는 다음과 같다.7016 2543 마법사 상어가 모든 파이어볼에게 이동을 명령하면 다음이 일들이 일어난다.모든 파이어볼이 자신의 방향 di로 속력 si칸 만큼 이동한다.이동하는 중에는 같은 칸..
1. 문제 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다. 각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다. 각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오. 2. 입력 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주..
1. 문제 2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다. 이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다. 이때, 같은 값을 갖는 두 블록이 충돌하면 두 블록은 하나로 합쳐지게 된다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. (실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다) 마지막으로, 똑같은 수가 세 개가 있는 경우에는 이동하려고 하는 쪽의 칸이 먼저 합쳐진다. 예를 들어, 위로 이동시키는 경우에는 위쪽에 있는 블록이 먼저 합쳐지게 된다. 의 경우에 위로 이동하면 를 만든다.이 문제에서 다루는 2048 게임은 보드의 크기가 N×N ..
1. 문제 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, y는 열을 의미한다. 빨간색, 파란색, 초록색 보드가 사용하는 좌표는 그 색으로 그림에 적혀있다. 이 게임에서 사용하는 블록은 타일 하나 또는 두 개가 가로 또는 세로로 붙어있는 형태이다. 아래와 같이 세 종류가 있으며, 왼쪽부터 순서대로 크기가 1×1, 1×2, 2×1 이다. 블록을 놓을 위치를 빨간색 보드에서 선택하면, 그 위치부터 초록색 보드로 블록이 이동하고, 파란색 보드로 블록이 이동한다. 블록의 이동은 다른 블록을 만나거나 보드의 경계를 만나기 전까지 계속해서 이동한다. 예를 들어, 크기가..
1. 문제 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀있고, i번째 원판에 적힌 j번째 수의 위치는 (i, j)로 표현한다. 수의 위치는 다음을 만족한다.(i, 1)은 (i, 2), (i, M)과 인접하다.(i, M)은 (i, M-1), (i, 1)과 인접하다.(i, j)는 (i, j-1), (i, j+1)과 인접하다. (2 ≤ j ≤ M-1)(1, j)는 (2, j)와 인접하다.(N, j)는 (N-1, j)와 인접하다.(i, j)는 (i-1, j), (i+1, j)와 인접하다. (2 ≤ i ≤ N-1)아래 그림은 N = 3, M = 4인 경우이..
1. 문제 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다. 체스판의 각 칸은 흰색, 빨간색, 파란색 중 하나로 색칠되어있다.게임은 체스판 위에 말 K개를 놓고 시작한다. 말은 1번부터 K번까지 번호가 매겨져 있고, 이동 방향도 미리 정해져 있다. 이동 방향은 위, 아래, 왼쪽, 오른쪽 4가지 중 하나이다.턴 한 번은 1번 말부터 K번 말까지 순서대로 이동시키는 것이다. 한 말이 이동할 때 위에 올려져 있는 말도 함께 이동한다. 말의 이동 방향에 있는 칸에 따라서 말의 이동이 다르며 아래와 같다. 턴이 진행되던 중에 말이 4개 ..
zip 함수란?여러 개의 iterable(리스트, 튜플 등)을 받아서 같은 위치에 있는 요소들끼리 묶어주는 함수이다. 예시를 보면 더 이해가 될 것이다. a = [1, 2, 3]b = ['a', 'b', 'c']zipped = list(zip(a, b))print(zipped)출력:[(1, 'a'), (2, 'b'), (3, 'c')] 쉽죠? 같은 위치에 있는 요소들이 묶어지는 것이다.그럼 이걸 활용하면 쉽게 전치 행렬을 만들 수 있다는 것이다!! 예시를 보며 이해해보자.matrix = [ [1, 2, 3], [4, 5, 6]] 위와 같은 행렬이 있다고 해보자. 우린 이걸 zip을 이용하여 전치 행렬을 만들어볼 것이다.transposed = list(zip(*matrix))print(trans..
reduce() 함수는 리스트나 튜플 등 여러 값들을 하나로 줄일 때 사용하는 함수이다.예를 들어, 리스트 안의 숫자를 모두 더하거나, 곱하거나, 연결할 때 사용할 수 있다. reduce()는 functools 모듈에 포함되어 있으므로 먼저 import 해야 하는 것이 중요!!! 기본 문법from functools import reduce reduce(함수, 반복가능한_데이터) 함수: 두 개의 값을 받아서 누적 연산을 수행하는 함수반복가능한_데이터: 리스트, 튜플, 문자열 등예시 1from functools import reduce nums = [1, 2, 3, 4, 5] result = reduce(lambda x, y: x + y, nums) print(result) # 출력: 15 - 작동 순서..
- Total
- Today
- Yesterday
- ML
- ML 프로세스
- ndarray
- ML 종류
- **
- 파이썬
- ML Process
- 강화학습
- sorted
- python
- 머신러닝
- 로지스틱 회귀
- baekjoon
- 숏코딩
- Action spaces
- 클래스 총 정리
- 경사하강법
- 앤드류응
- 비용함수
- cnn
- 백준
- *args
- 손실함수
- **kwargs
- 딥러닝
- *
- NumPy
- Sort
- 강의노트 정리
- Andrew Ng
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
