분류 전체보기94 [BOJ] 1002번 터렛 [BOJ] 1002번 터렛 문제 재밌는 기하학 문제다. 처음 보면 어려울 수 있으나, 우린 이 개념을 중학생 때 이미 배웠다. 미사일 터렛은 스타크래프트 1과 2에서 테란 종족이 대공 방어를 위해 건설되는 건물이다. 근데 이 터렛에는 모델링으로도 사람이 존재하며, 스타 1 리마스터 판에 들어서는 아예 사람이 선명하게 앉아 있는 모델링을 볼 수 있다. 근데 놀랍게도 인구수는 안 먹는다. 문제의 디테일은 여기서 마무리하고, 그렇다면 이 문제는 무엇을 물어보는 것일까? 먼저 문제에서는 터렛 두 개의 좌표와 각 터렛이 인지할 수 있는 범위 r1과 r2를 주었다. 그리고 탐지해야 하는 사람의 좌표의 개수를 구하라고 되어있다. 그렇다면 여기서 좌표는 무엇일까? 그렇다. 점이다. 자고로 영역으로 하는 순간 이 문제는.. 2022. 9. 30. [BOJ] 18111번 마인크래프트 [BOJ] 18111번 마인크래프트 문제 굉장히 어려웠던 브루트 포스(brute force) 문제였다. 애초에 이 문제가 브루트 포스라고 감이 오는 사람이 몇이나 있을까 싶기도 하다. 제한시간이 단 1초인 데다가, 최악의 경우 $ 25,000 \times 257 $가지의 경우를 다 둘러봐야 한다. 이 조건만으로 브루트 포스라고 판단하기엔 정말이지 힘들다. 파이썬에서는 대략적으로 1초에 1천만 개의 경우 정도까지가 브루트 포스로 풀 수 있는 최대 경우로 여겨진다. 다행히 이 문제는 $ 25,000 \times 257 = 6,425,000 $이므로 1천만보다는 적으니 브루트 포스로도 풀릴 수 있다. 덤으로 경우의 수가 매우 크다면 기존 파이썬으로는 시간 초과가 날 가능성이 높아서 반드시 Pypy3으로 제출해.. 2022. 9. 27. [경사 하강법 #1] 경사 하강법에 대해 알아보자 - 1 딥러닝 학습의 핵심은 아래와 같다. 입력에 따른 모델의 결과와 실제 결과와의 차이를 손실 함수(loss function)로 나타낸다. 손실 함수의 최솟값을 찾는 방법을 적절히 이용하여 둘 사이의 오차를 구한다. 손실 함수에서 얻은 오차를 편미분을 이용하여 역전파를 이용해 모델의 가중치를 갱신한다. 이를 계속적으로 반복한다. 이 순환이 마치 사람이 학습을 하는 것과 비슷하여 학습이라는 단어를 사용한다. 그렇다면 처음부터 차근차근 확인해보자. 딥러닝 모델은 엄연히 비선형 함수다. 함수이기 때문에 아래의 수식을 당연하게도 만족한다. 여기서 $ x \: $는 입력이고, $ y \: $는 $ x \: $에 대한 결과다. $ f \: $는 딥러닝 모델이다. 하지만 딥러닝 모델의 초기 설정은 누군가가 학습을 시킨 것.. 2022. 9. 26. [잡담] 원주에 잠깐 리프레쉬를 하러... 연이은 취준의 실패와 사적으로 안 좋은 일들이 계속 겹쳐 굉장히 힘든 시기를 보내는 중에 마침 축제이기도 하고 학교에 사람들이 다닌다길레 반쯤 즉석으로 원주에 갔다. 정확히는 축제를 즐기기보다는 축제라서 지나다니는 사람을 보고 싶어서 간 게 크다. 언제나 푸르스름하고 늠름한, 하지만 그 안에서 여러 변화들이 계속 일어나는 변화의 광장이기도 한 학교다. 우리 학교의 아마도 유일한 ICPC 한국 리저널을 배출한 2016년(심지어 이때 2학년이었던 내 친구가 메인이었다!)을 제외하고 거의 절멸했다시피 했던 PS의 명맥에 이번 학기부터 강력한 지원이 생겼다는 소식에 내심 기뻤다. 내 개인적인 꿈 중에 하나가 내 학부의 후배가 만든 PS 문제를 푸는 것인데, 이 기조가 계속 이어진다면 내후년엔 진짜 이룰 수 있을.. 2022. 9. 23. [게임 잡담] 재밌는 워들형 게임 알아맞추기 GuessTheGame 재밌는 워들류 게임을 찾아서 공유해본다. 일부 게임은 이게 뭐지? 싶을 정도지만 그래도 근본 게임들이 더 많아서 재밌다. https://guessthe.game/ GuessTheGame - Your daily video game guessing puzzle! guessthe.game 2022. 9. 18. [잡담] 내가 가장 많이 본 영상 전설의 아이폰 1세대 키노트 풀영상 내가 인생에서 가장 많이 본 영상은 바로 2007년에 스티브 잡스가 발표한 아이폰 1세대 키노트 영상이다. 지금 남아있는 풀 영상은 이거뿐이라 이걸 올린다. 최근 사람들이라면 이게 뭐가 대단하냐고 하겠지만, 내 또래거나 나보다 더 나이가 많은 사람이라면 이 영상은 IT 업계를 한 방에 바꿔버린, 전설 중의 전설과도 같은 키노트라는 것을 알 것이다. 이 키노트가 전설이 된 이유는 크게 네 가지다. 2007년 당시에 대기업 CEO가 후줄근한 차림으로 어슬렁거리면서 발표하는 건 굉장히 보기 드물었고, 위트 있게 발표하는 경우는 더더욱 드물었다. 당장 위의 영상의 1:08:39 즈음부터 시작되는 at&t CEO의 발표와 비교해보자. 자고로 at&t는 미국의 3대 통신회사 중 .. 2022. 9. 17. [BOJ] 10219번 Meats On The Grill [BOJ] 10219번 Meats On The Grill 문제 구성적(Constructive) 문제가 무엇인지 알아보는 좋은 문제다. PS에서 구성적 문제에서 구성적은 구성적 증명(Constructive proof)에서의 구성적이며, 예시를 들어 문제를 증명하는 방식이다. 구성적 문제의 경우 예시 중 하나만 입력해도 답으로 처리해주기 때문에, 해당 문제에서 정답을 이끌어내는 특정한 방법을 구하는 애드 혹(Ad hoc)의 특성도 보인다. [Reference article] Constructive 문제를 어떻게 풀 것인가 - 16silver 즉, 이 문제에서만 풀 수 있는 풀이법을 문제를 읽으면서 캐치하는 것이 핵심이라 보면 되겠다. 일반적으로 이 문제의 일반적은 해를 구하기 위한 방법으로는 도저히 방법이 .. 2022. 9. 17. [잡담] BOJ 850문제 달성 & 200일 스트릭 달성! 2022년 2월 22일에 시작한 백준... 2022년 2월 22일에 시작한 백준... 당시엔 정말 갑갑하고 답답했는데, 하나하나씩 정복하면서 성장하는 느낌이 나니까 기분이 좋아졌다. 취업도 이렇게 잘 되었으면 좋겠는데 참... 2022. 9. 10. [BOJ] 14940번 쉬운 최단거리 [BOJ] 14940번 쉬운 최단거리 문제 약간의 변형이 들어간 BFS(Breadth First Search) 문제다. 다만 어디까지나 약간의 변형이므로 BFS 처리에 집중하는 것이 중요하다. 이 문제는 누가 봐도 BFS라는 것을 알 수 있다. 하나뿐인 시작 지점인 2를 찾고, 그 지점에서 BFS를 돌리면서 닿는 구간마다 1을 더해주면 된다. 본인은 여기서 약간의 변형인 "1인 지점이지만 갈 수 없는 곳이라면 -1을 출력한다"에서 실수를 저지르고 말았다. 문제를 끝까지 읽어야 겠다는 생각만 든다... import sys from collections import deque def bfs(I, J, N, M): visited = [[False for _ in range(M)] for _ in range(N.. 2022. 9. 10. [BOJ] 1309번 동물원 [BOJ] 1309번 동물원 문제 꽤 어려웠던 DP(Dynamic Programming) 문제다. 이 문제는 DP 중에서도 2차원 배열을 이용하는 DP 문제다. 1차원 배열 DP 풀이도 있으나 이해하기엔 너무 어렵기에 여기서는 2차원 배열을 이용한다. 핵심은 N번째 층에서 사자가 없을 때 / 왼쪽에 있을 때 / 오른쪽에 있을 때로 나누고, N번째 층의 위쪽(즉, N-1번째) 층에 따라 해당 층에는 어떨 때에 사자를 배치할 수 있는지 없는지를 확인하는 것이다. 또한 사자를 안 두는 방법도 하나의 방법이라는 것도 인지해야 한다. 이를 위해 각 층마다 [사자가 없을 때, 왼쪽에 있을 때, 오른쪽에 있을 때]라는 배열로 둘 수 있다. 먼저 1개의 층만 있을 때를 보자. 간단하게 안 두기, 왼쪽에 두기와 오른쪽의.. 2022. 9. 9. 이전 1 2 3 4 5 6 7 8 ··· 10 다음 728x90