본문 바로가기

전체 글

(13)
2812 크게 만들기 백준 2812 크게 만들기 문제이다. https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 그리디 알고리즘으로 풀 수 있는 문제이다. 나는 생각해보다가 전혀 감이 안 잡혀서 풀이도 많이 참고하였다. 내가 생각한 풀이 ) 앞에서부터 읽으면서 가장 작은 숫자를 k번만큼 반복하면서 지운다. -> 백준 예제 3이 반례이다. 앞에서부터 지우면 1,2,2,1을 지우게 되서 477584가 나오고, 이는 775841보다 작다. 여기서 부터 아무 생각이 안 났다... 마음을 다 잡고 더 생각해봤어야 했는데 무작정 여기서부터 풀이를 참고하였다...
혼공머신 6주차 (+pytorch keras 비교) 벌써 혼공머신 6주차다..! 매주 조금씩이라도 공부하자는 마음에서 신청 했었는데.. 진짜 끝을 보게 되서 기분이 묘하다. 방학 동안 인공지능 공부를 해보자!!! 막연히 생각하고 관련된 것들을 찾아서 그리고 신청해서 공부했는데.. 한달 뒤에 보니까 급성장? 까지는 아니어도 성장했다는 느낌이 들어서 너무 신기하다.. 이런 느낌은 참 오랜만에 받는 것 같다. 이런 이벤트가 있었다는 거에 너무나도 감사하고, 매주 모든 학생들 SNS(내 것두 포함)해서 열심히 살펴보구 댓글 달아주신것도 너무너무 감사하다 ㅠ ㅠ 7. 인공 신경망 이번 주는 그동안 배웠던 내용을 수합하는 느낌이 조금 있었다. 결국 인공 신경망은, 우리가 열심히 만들었던 모델 그 자체..! 였던 것이다. 개인적으로 나는 pytorch를 혼공머신과 같..
11053 가장 긴 증가하는 부분 수열 dp 문제가 어려워서 계속 공부하고 있는데, 내 발목을 잡았던 문제다. 풀이를 읽어도 뭔가 사악 자연스럽게 안 들어와서 며칠 동안 보고 있었는데 이제야 좀 들어오는 것 같아서 안 까먹기 위해 블로그를 쓴다. 이 문제는 LIS 알고리즘으로 검색하면 여러 가지 방법이 나오지만, 난 현재 dp방법만 알고 있으므로 이것만 소개하겠다. 이후 된다면 계속 추가하도록 한다. 문제 사이트는 다음과 같다. 말 그대로 수열에서 가장 긴 증가하는 부분 수열의 길이를 찾으면 된다. https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 3..
혼공머신 5주차 기본미션! k-평균 알고리즘 k-평균 알고리즘의 기본 아이디어는 군집화(그룹으로 묶음)하는 것이다. 정답을 알려주지 않고 알고리즘이 직접 샘플들을 분류하기 때문에 비지도 학습에 속한다. 방법은 다음과 같다. 1. k개의 무작위 점을 정한다. 이 k는 결국 그룹의 수가 되고, 각 점이 위치한 곳이 클러스터의 중심이 된다. 2. 클러스터의 중심에서 가까운 친구들을 해당 클러스터의 그룹으로 넣는다. (여기서 가까운 친구들이 더욱 비슷한 특성을 가진다고 본다.) 3. 2번에서 넣은 친구들의 평균값을 계산해서 클러스터 중심을 변경한다. 4. 2-4 과정을 클러스터 중심이 변하지 않을 때까지 반복한다. 이렇기 때문에 군집이 상대적으로 평범하게 생겼을 때 (그룹이 복잡하게 나뉘게 되면 잘 안 돌아감) 잘 돌아간다는 ..
혼공머신 4주차 (5. 트리 알고리즘) 오늘은 5. 트리 알고리즘에 대한 내용이다! 분류에 대체적으로 집중하고 있는 느낌이라서 분류하는데 쓰이는 모델들을 많이 알게 된 것 같아서 좋았다. 기존에 다중 분류 문제는 로지스틱 회귀를 이용하여 해결하였다. 그래서 나는 로지스틱 회귀가 전부인줄 알았으나,, 당연히 아니었다. https://colab.research.google.com/drive/1lr42lH7tyEAa0Ems3OliBazSL6ukyF36#scrollTo=aHStuoduT2T 코랩 파일이다,, 이번에는 한번 바꿔서 주석 달기보다 블로그에 정리했는데... 뭐가 나은건지 아직도 잘 모르겠다! 선택 미션은 손코딩이라 캡쳐 대신 파일로 대신한다. 05_트리_알고리즘.ipynb Colaboratory notebook colab.research...
pwntools ( +드림핵 문제 푸는 법) 얼마 전에 처음 드림핵(http://dreamhack.io)을 접하고 문제를 풀어 보려고 했는데 아예 접근조차 못하겠어서 고생을 했다. 그래서 여기저기 찾아보다가 알게 된 게 pwntool이라는 거였다. pwntool을 먼저 설명하기 전에 드림핵 문제를 푸는 법을 설명해야겠다. 가장 먼저 드림핵에서 플래그를 얻어내기 위해서는 드림핵의 서버에 접속해야 하는데 이때 nc 명령어를 이용한다. nc는 TCP 또는 UDP 프로트콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓸 수 있는 간단한 명령어이다. 드림핵 워게임에서 접속 정보를 확인하면 어디로 들어가야 하는지 알 수 있다. nc host1.dreamhack.games 포트번호 터미널에서 이렇게 치면 해당 문제의 서버로? 접속이 가능해진다. 접속하고 나면 로..
혼공머신 3주차 오늘은 나름 꼼꼼히 공부했다! 코랩에 코드에 대한 주석을 달아가면서 정리했고, 그래서 코랩 링크를 남겨 놓는다! 코랩 링크 : https://colab.research.google.com/drive/1RhQ7wNC7zfK1Nhv_D6J9bK5J9fvY6BjF?usp=sharing
혼공머신 2주차 저번주는 왜 이렇게 바빴는지.. 흑흑 중요한 부분인데 간신히 과제만 해서 낼 수 있었다.. 이번주에도 이어서 계속 보려고 한다!! 그래서 오늘은 기본미션만 수행하였다.