https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 0. 알고리즘 분류 문자열, 구현 1. 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를..
https://www.acmicpc.net/problem/18127 18127번: 모형결정 첫째 줄에 정수 A(3 ≤ A ≤ 50), B(0 ≤ B ≤ 10,000,000)가 주어진다. A는 결정의 모양이 A개의 변을 가진 정다각형임을, B는 온도가 섭씨 –B도 임을 의미한다. www.acmicpc.net 0. 알고리즘 분류 수학, 사칙연산 1. 문제 지윤이는 신기한 물질을 발견했다. 이 물질의 결정은 정다각형을 유지하며 온도가 1도 낮아질 때마다 각 변을 이루는 결정의 수가 1씩 증가한다. 최초의 결정은 섭씨 0도에서 1개의 결정으로 이루어진다. 이 결정을 최소 결정이라고 하자. 결정의 크기가 증가할 때의 규칙은 다음과 같다. 그림에서 기존 결정은 파란색으로, 각 온도에서 새로 생긴 최소 결정은 노란색..
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 0. 알고리즘 분류 구현, 문자열 1. 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 2. 풀이 string 클래스에 익숙하다면 금방 푼다. 중요한 것은 "단어가 처음 등장하는 위치"를 출력하는 것이다. 역시 자잘한 것을 실수하지 않..
https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 0. 알고리즘 브루트포스 알고리즘 1. 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 2. 풀이 문제 자체는 쉽다. 123,135,147,159,210 처럼 자릿수가 일정하게 증가하거나 감소 또는..
https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 0. 알고리즘 분류 1차원 배열 1. 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 2. 풀이 문제를 처음 봤을 때 상당히 쉬울 거라 생각했지만, 생각보다 간단하게 풀리지는 않았다. 10개의 자연수를 42로 나눈 나머지를..
https://www.youtube.com/watch?v=Js0rBbx3-3E&t=870s 영상을 따라 퐁 에이전트를 실습하고 있는 중인데, 환경 제작까지는 별 문제가 없었다. ML-Agents release 버전이 달라 조금 머리 아프긴 했지만, 공식 API 문서를 보면서 어떻게 해결됐다. 문제는 Heuristic 모드와 Action에 생겼다. 키보드 A와 D로 입력을 받아 조작할 수 있도록 Heuristic()을 설정했는데, 전혀 작동하지 않는다... 게임을 시작하면 애초에 onActionReceived()에 설정한 Episode를 리셋하는 조건조차 실행되지 않고, 공은 저 멀리 날아갔다. 대체 뭐가 문제일까... 디버그를 해도 onEpisodeBegin()까지는 정상실행되고, 나머지는 실행조차 되지..
집으로 돌아와 데스크탑으로 훈련을 돌렸다. 훈련장을 9개 복사하고, Gpu로 Burst로 돌리니 학습속도는 노트북이랑 비교도 안되게 빠르다. 학습하고 결과 보는 것 까지는 문제가 없었다. 문제는 학습된 결과물인 rollerball_config.onnx 파일을 Agent에게 넣어 결과를 확인하려고하니, "UnityAgentsException: Unknown tensorProxy expected as input : obs_0"라는 에러가 발생했다.. 구글링결과, mlagents를 최신으로 업데이트하면 해결된다고하는데..(사용 중인 버전은 mlagents release 13) mlagents 패키지를 최신으로 바꿔주면 어디서 또 충돌이 일어나고, 다르게해도 에러가 뜨고.. example/pushblock에서 ..
평소처럼 ML-Agents 공부를 하던 중. 문득 인간의 뇌가 엄청나게 고도의 물건이라는 것을 새삼 깨달았다. 단순히 Unity 상에서 공을 굴려 목표를 향해 나아가게 하는 Agent만을 작동시키는데도 비싼 노트북의 Cpu와 Ram 등이 사용된다. Agent가 학습하기 위해서는 가상환경으로부터 학습에 필요한 정보들을 얻어야 하는데, 일반적인 성능의 노트북으로는 Agent에게 한정된 Environment Information 환경정보 밖에 넣을 수 없다. 넣을 수는 있어도 학습기간이 너무 방대해지고 노트북의 성능으로는 감당할 수 없어질 것이다. 당장 사람이 깨어있는 동안에도 시각,청각,후각 등을 항상 받아들이고 있다. 특히 가장 많이 사용되는 것이 시각정보이다. 사람은 눈으로 정보를 받아들여서 사물을 분리..