분류 전체보기
-
백준 16235번 나무 재테크PS 2020. 2. 7. 23:53
https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 떨어진 칸의 개수, c는 가장 왼쪽으로부터 떨어진 칸의 개수이다. r과 c는 1부터 시작한다. 상도는 전자통신공학과 출신답게 땅의 양분을 조사하는 로봇 S2D2를 만들었다. S2D2는 1×1 크기의 칸에 들어있는 양분을 조사해 상도에게 전송하고, 모든 www.acmicpc.net 시뮬레이션 문제입니다. 풀면서 자료구조 선택이 승패를 좌우하겠구나 생각했습니다. 나무에 대한 정보, 현재 양분에 대한 정보, 뿌리는..
-
백준 16236번 아기상어PS 2020. 2. 7. 23:35
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net bfs 탐색으로 시뮬레이션하는 문제입니다. 처음에 큐에 넣는 순서를 조건대로 해준 다음에 먹이를 만나면 바로 먹는 것으로 처리를 하..
-
백준 17144번 미세먼지 안녕!PS 2020. 2. 7. 22:45
https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다. 공기청정기는 항상 왼쪽 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼 www.acmicpc.net 그냥 시뮬레이션 문제입니다. 다만 배열 돌리기를 구현해야하고 공기청정기가 깨끗한 공기를 내뱉고 미세먼지를 먹는다는 조건도 구현..
-
백준 12100번 2048(Easy)PS 2020. 2. 6. 01:07
https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 중복순열에 동작구현을 하면 되는 문제입니다. 동작구현이 조금 까다로웠습니다. 4방향에 대한 각각의 동작을 압축하는 것이 힘들었습니다. 얼마나 압축할 것인지와 거기에 따라 달라지는 자료구조와 구현이 직관적으로 머리에 담기는 힘들었습니다. 종이에 풀어쓰는 연습이 더 필요할 거 같습니..
-
백준 13460번 구슬 탈출2PS 2020. 2. 4. 22:03
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드 www.acmicpc.net 최소, 탐색 이라는 키워드로 bfs에 대한 느낌을 받을 수 있었습니다. 처음에 이동은 바로 감이 잡혔으나 방문은 잘모르겠단 생각..
-
백준 17822번 원판돌리기PS 2020. 2. 4. 21:55
https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 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 www.acmicpc.net 시뮬레이션 문제입니다. 인접규칙이 언뜻 보기에는 까다로웠고 문제 동작도 예제를 통해 확인을 해봐야만 정확한 부분이 있었습니다. 인..
-
오차역전파법 - 배치용 Affine 계층딥러닝 2020. 2. 1. 00:06
바로 계산 그래프 보시죠. 입력 하나짜리와 차이점은 X(N, 2) 이 부분밖에 없군요. 하지만 주의할 게 있습니다. 덧셈의 역전파는 오른쪽의 값을 왼쪽으로 그대로 전달하면 되는 것으로 배웠습니다. 여기에서 편향의 역전파는 단순히 그렇게 생각하고 값을 넘기면 안됩니다. 책에서는 이렇게 나옵니다. 순전파의 편향 덧셈은 각각의 데이터(1번째 데이터, 2번째 데이터...)에 더해집니다. ---- 1 그래서 역전파 때는 각 데이터의 역전파 값이 편향의 원소에 모여야 합니다. ---- 2 1번의 의미 입니다. 2번의 의미를 코드로 표현했습니다. import numpy as np dY = np.array([[1, 2, 3], [4, 5, 6]]) print(dY) print("------------") dB = np..
-
오차역전파법 - Affine 계층 구현하기딥러닝 2020. 1. 31. 22:01
신경망의 순전파의 과정을 봅시다. X : 입력값 W : 가중치 매개변수 B : 편향 라고 가정하면 Y = np.dot(X, W) + B .....식 1 Z = H(Y) ......식 2 여기서 Z가 은닉층 1개의 출력값이 됩니다. 식 1 부분이 Affine계층이 하는 일 입니다. 이때, X, W, B 가 각각 (2, ), (2, 3), (3, )인 다차원 배열입니다. 이때의 계산 그래프를 봅시다. 순전파는 EASY한 부분 인지지용~~? 권지지ㅣㅈ지용~~? 그럼 역전파를 볼까요 이렇게 됩니다. W,와 X 위의 T는 전치행렬이라는 뜻입니다. 이렇게 말이죠. 그런데 의문이 듭니다. 수학을 못하지만 최대한 기억을 살려 미분을 해봐도 저 전치행렬이 왜 있는지 모르겠습니다. 책에는 '행렬끼리의 곱을 하기 위해서는 ..