짱민영
'분류 전체보기' 카테고리의 글 목록 (6 Page)

분류 전체보기

알고리즘 문제풀이/그래프 탐색

[백준][C++] 20010 악덩 영주 혜유

20010. 악덩 영주 혜유 20010번: 악덕 영주 혜유 FT온라인 게임에서 치열한 경쟁을 통해 영주가 된 혜유는 퀘스트를 받았다. 퀘스트의 내용은 자신이 관리하고 있는 마을 사이에 교역로를 건설하여 마을 간 교류를 활성화시키는 것이다. 이때, www.acmicpc.net 코드 GitHub - minyoung529/AlgorithmStudy: 여러 알고리즘 문제를 푸는 저장소입니다. 여러 알고리즘 문제를 푸는 저장소입니다. Contribute to minyoung529/AlgorithmStudy development by creating an account on GitHub. github.com 알고리즘 설계 크게 두 가지를 구했다. 최소 스패닝 트리는 크루스칼 알고리즘을 이용해서, 두 마을 사이를 이..

알고리즘 문제풀이/문자열

[백준][C++] 5430 AC

5430. AC 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 풀이 GitHub - minyoung529/AlgorithmStudy: 여러 알고리즘 문제를 푸는 저장소입니다. 여러 알고리즘 문제를 푸는 저장소입니다. Contribute to minyoung529/AlgorithmStudy development by creating an account on GitHub. github.com 알고리즘 설계 1 처음에는 정석대로 R과 D를 시뮬레이션했다. 코드 1 // 일부분 for (char c : command) { if (c == 'R') { reverse(..

알고리즘 문제풀이/동적 프로그래밍

[백준][C++] 10942 팰린드롬?

10942. 팰린드롬 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 문제 풀 때 막혔던 것 (바보짓..) 초장부터 문제를 잘못 이해해서 초반에 엄청난 시간을 썼다... 나는 처음에, 숫자를 받으면 하나의 문자열로 생각했다. 반대로, 이렇게 하나의 문자열로 생각하지 말고 숫자 자릿수에 상관없이 하나 하나 비교해야 하는 것이었다! 여기까지는 괜찮았지만, 팰린드롬을 비교할 때 치명적인 실수를 했다. p1(index)부터 p2(index)까지의 수가 팰린드롬인지 확인할 예정이었다. 따라서 p1부터 증가하는 값과 p2부터 감소하는 값을 비교해줄 생각이었는데..

AI

[AI][C#][오델로 AI] 3. Q-Learning으로 오델로 AI를 만들자!

글에서 쓰이는 모든 코드는 제가 쓴 것이 아닙니다. 동계캠프를 진행하는 동안의 수업 자료입니다. 러시아 장기에서 머리가 깨질뻔하게 했던 큐러닝... 큐함수가 뭔지... 엡실론이 뭔지 ㅠ_ㅠ 정말 어려웠지만, 4x4 오델로를 만들며 이해가 조금은 더 돼서 좋았던 녀석이다. 내가 이해한 Q-Learning은 상태-> 행동에 기반한 보상이 주어지는 알고리즘이다. DP는 상태에 따른 보상의 가치 함수였다면, Q함수는 상태에 따른 행동에 따른 보상을 가진 함수이다. Q-Learning AI는 이런 기능으로 세분화해 개발했다. 가치함수 초기화 학습 엡실론 그리디 정책에 의한 첫번째 행동 선택 최적의 다음 상태와 보상 구하기 가치 함수 업데이트 에피소드 반복 학습 이렇게 개발했다. 물론 내가 아닌 선생님이... 지금..

AI

[AI][C#][오델로 AI] 2. DP로 오델로 AI를 만들자!

글에서 쓰이는 모든 코드는 제가 쓴 것이 아닙니다. 동계캠프를 진행하는 동안의 수업 자료입니다. 엄밀히 말하면 DP는 학습을 하지 않으므로, DP로 만드는 것은 AI보다는 프로그램에 가까울 테지만... 아무튼 AI 카테고리에 올리고 싶으니까 편의상 AI라고 말할 것이다. ㅎ_ㅎ 보드의 상태를 가치 함수의 키값으로 쓰고, 갱신을 위해 전 값과 오차를 구하하고, 적은 오차값을 구하기 위해 같은 패턴을 반복해나가는 게 다이나믹 프로그래밍인 이유라고 생각한다. DP AI는 이런 기능으로 세분화해 개발했다. 가치함수 초기화 그리디 정책에 의한 학습 행동에 대한 최적의 기댓값 구하기 오차 구하기 학습을 토대로 다음 행동 반환 이 정도인데, 여기서 말하는 학습이란 AI가 강화 학습을 하는 게 아닌, 상태에서의 최적의..

AI

[AI][C#][오델로 AI] 1. 오델로 AI의 구조를 짜보자!

동계 캠프에서 4일간 20시간 동안 AI를 배우면서, AI에 전체적인 개념에 대해서 알 수 있었다. AI로 러시아 장기, 4x4 오델로를 만들어보며 정말 뿌듯했지만, 반대로 정말 어려웠던 20시간이었기도 하다. 유니티와 C++ 게임 개발의 영역에만 있다가 AI라는 새로운 영역에 발을 디딘 것에 의의를 둔다! 잊어버리지 않기 위해 4x4 오델로 AI 만들기를 DP, Sarsa, QLearning AI를 통해 다시 한 번 복습해볼 것이다! 물론... DP는 AI가 아니긴 하지만... 일단 편의상 묶자 ㅎ_ㅎ 상태 우선, 오델로 보드 한 칸에서의 상태는 3가지가 있다. 흑돌 혹은 백돌 상태, 그 외 빈 상태! 상태를 표현해주기 위해 우리는 흑돌을 1, 백돌을 2, 빈 상태를 0으로 놓았다. 이렇게 2차원 배열..

성장을 위한 글/나에 대한 것

[연말결산] 2022년 동안 내가 한 것들

연초에 하는 연말결산. 2022년은 정말 빠르게 지나갔고, 그와 반대로 배우고 느낀 게 가장 많으며 가장 바쁜 해였다. 세심하고 다정하신 담임 선생님과 같이 으쌰으쌰 성장하는 반 친구들이 내 성장에 큰 영향을 미쳤다. 부끄러움보다는 피드백을 받는 것을 선택할 줄 알고 경쟁보다는 같이 성장하는 기쁨을 느낄 줄 알게 된 것 같다. 개발 부분이나, 심적으로나 정말 많이 성장한 해였다. 동시에 주말에는 프로젝트와 자기계발로 할애하다 보니, 가족들과 친구들의 얼굴을 볼 시간, 대화할 시간이 많이 없어 많이 속상하고 아쉬운 해이기도 했다.. 1년간 참여한 활동이 정말 많아서, 간단하게만 소개하는 게 좋을 것 같다. 이것만은 내가 학교 짱! 알고리즘 노트 한 학기 동안 가장 꾸준히 한 게 뭐냐고 물어본다면, 나는 한..

개발한 게임들/선생님을 지켜요!

[프로젝트 후기] 💗 선생님을 지켜요!

연말에 제출하고, 연초에 쓰는 프로젝트 후기. 3주라는 무척 짧은 시간 동안, C++ 개발자님들께 경외심을 느끼고 시간과 열정을 불태워 제작한 2인 팀 프로젝트이다. 너무 많은 일들이 겹쳐있었지만, 게임 퀘스트처럼 하나 하나씩 해결하는 재미가 있었다. 이 프로젝트는 가장 핵심적인 퀘스트였고 정말 잘 해냈다고 볼 수 있다! 느끼고 배운 것을 정리해보자. - 일정과 개발 능력에 맞는 기획은 아주 중요하다! - 게임 플레이가 간단하다면, 시각적 완성도와 재미에 힘을 써 완성도를 높이자. - 당연한 이야기지만, 가르치는 건 나 또한 성장하는 일이다. 내가 무엇이 부족하고, 설명할 수 없는지 가장 잘 알 수 있다. 배우는 것만큼이나 중요한 일. - 오류를 해결하는 건 집념보다는 침착함이다. 디버깅할 땐 항상 논리..