목록분류 전체보기 (258)
Joonas' Note
링크: https://www.acmicpc.net/problem/15719문제자료형의 비트를 이용하여 배열을 압축하여 사용하는 방법과, 수학으로 푸는 2가지 풀이를 소개하려 한다.풀이 1 (비트)표현할 정수의 범위는 [0, 10000000]이다. 그리고 필요한 정보는 각 숫자들이 사용되었는가/아닌가 이다.사용되지 않았다면 0, 사용되었다면 1로 표현한다면 숫자 하나의 사용 여부를 하나의 비트로 관리할 수 있다. 즉, 32비트 정수 하나에 32개의 수의 상태를 담을 수 있다.그럼 배열의 크기는 \(\lceil 10~000~000 / 32 \rceil = 312~500\)만큼 필요하다. 코드는 훨씬 간단하다.코드 풀이 2 (수학)1부터 \(n-1\)까지의 수가 골고루 등장한다. 등장한 모든 수의 합을 \(S..
링크: https://www.acmicpc.net/problem/15683문제모든 조합을 살피고 시뮬레이션을 할 수 있어야 하는 문제. CCTV가 보고 있는 방향을 하나씩 선택하면서, 모든 방향이 결정됐을 때 시뮬레이션 후 사각 지대의 개수를 구한다. 모든 조합을 살피다가 사각 지대의 개수가 최소가 되는 조합에서 정답을 출력하면 된다. CCTV의 방향을 처리하는 시뮬레이션이 벽에서 막힌다거나 지도 밖으로 넘어가는 것 외에도 은근히 신경쓰이는 게 많다. 오목이나 틱택토류의 코드를 작성한 경험이 있다면 수월할 듯 상세한 부분을 제외하면 개략적인 구조는 이렇다. 여러 방향을 한번에 담아 처리하기 위해 비트로 각 방향을 표현했다. 비트가 겹치는 것을 확인하는 건 비트 AND연산으로 쉽게 구현할 수 있다. 예를 ..
링크: https://www.acmicpc.net/problem/1525 비트마스크로 해결하는 BFS이다. 3*3 퍼즐을 123 456 780 의 9자리 정수로 본다. 여기서 123456780이 문제에서 말하는 정리된 상태, 즉, 목표이다. 각 칸마다 퍼즐을 이동 시킬 수 있는 주변 4방향이 다르다. 구현하는 방법은 각 칸마다 인접 리스트를 만들거나, 행렬로 표현하든지 if문으로 하는 등 다양하다. 아래 코드에서는 반대로 이동이 불가능한 방향을 저장해서 구현했다. 문제는 "123456780" 과 같은 상태를 방문 했는지 여부를 확인하기에는 visit[876543210]를 수용할 수 있는 배열 크기가 필요하다. 하지만 실제로 나타날 수 있는 상태의 개수는 \(9! = 362,880\) 이다. 방문했음을 저..
릴리즈 파일을 찾았다!https://drive.google.com/open?id=1yax_k-xiMhbjOTNPg3MFv_nIlx0BryzrUnityPlayer.dll 파일 때문에 20MB를 넘어, 첨부하지 못했다. 홍보 영상 2017년도 교내 작품경진대회 출품을 위해 제작했다. 제작 기간은 1~2주정도.아이콘들은 Font Awesome에서, 카툰 렌더링은 에셋 스토어에서 Toon Shade를 사용했다. 숫자판은 직접 포토샵으로 제작하였다.발표 당시 사용한 PPT 3d mine sweeper with unity 3d from Joonas Yoon 어떤 한 블럭의 주변 26방향에 대해서 표시하려 했지만, 숫자 표현이 더러워서 포기하였다. 그리고 하나의 단면에 대해서만 집중하고 힌트가 부족할 경우 다른 단면..
(07:19:34) joonas@ubuntu ~/test (master) $ git push -u origin masterUsername for 'https://github.com': joonas-yoon Password for 'https://joonas-yoon@github.com': Counting objects: 11538, done. Delta compression using up to 2 threads. Compressing objects: 100% (11254/11254), done. Writing objects: 100% (11538/11538), 165.52 MiB | 13.39 MiB/s, done. Total 11538 (delta 1192), reused 0 (delta 0) rem..
2018년 4월 26~27일(1박 2일)동안 진행된 네이버 AI HACKATHON 2018(https://github.com/naver/ai-hackathon-2018)에 참가했다.대회 방식은 네이버에서 개발중인 클라우드 머신러닝 플랫폼 NSML을 사용하여 진행되었다.미션은 네이버 지식iN 질문 유사도 예측 문제와 네이버 영화 평점 예측 문제, 이렇게 2개였다. 나는 팀명 "error 모르게따"로 참가하여, 네이버 지식in 미션에서 2등으로 대회를 마쳤다. 숙소식사부터 숙소까지 대회가 진행되는 동안 너무 좋았다! 저희 팀은 3명이라 숙소 배정이 어떻게 될 지 몰랐는데, 3명 모두 1인 1실로 배정돼서 와 대박이네 하면서 편하게 쉬었다. 덕분에 팀원끼리도 편하게 쉬면서 같이 움직이니 더욱 잘 진행되는 기분..
링크: https://www.acmicpc.net/problem/2225 문제의 예시로 n=20, k=2일 때 나올 수 있는 경우의 수는 0 + 20 1 + 19 2 + 18 ...19 + 120 + 0로 총 21개이다. 풀이n=20이고 k=3이라면, 경우의 수는 아래와 같은 모양으로 전개된다.(n=20, k=3) = (n=20, k=2)+ (n=19, k=2)+ ...+ (n=1, k=2)+ (n=0, k=2) 3개의 수를 n=20 내에서 고르는 경우의 수 = 첫 번째 수로 0을 사용하고, 나머지 2개의 수를 n=20 내에서 고르는 경우의 수+ 첫 번째 수로 1을 사용하고, 나머지 2개의 수를 n=19 내에서 고르는 경우의 수+ .... 작은 문제로 쪼개어 해결이 가능하다. dp 테이블을 두고 메모이제..
Github Gist에서 간단한 소스 파일을 작성하여 글에 첨부하기 좋도록 embed 태그로, 또는 보기 편하도록 퍼머링크를 제공한다. 하나의 gist는 만들 때 secret/public 중에 골라서 만들 수 있다. secret은 나중에 Edit에서 Make public으로 공개할 수 있다. 근데 반대로 public gist에서는 비공개로 전환하는 Make secret 버튼이 없다. https://gist.github.com/zmwangx/bc79e7d95d82c2f5e0976975b6e1c6d6왜 Make secret 버튼이 없냐는 질문에 답변은 대충 이렇다.비밀로 바꾸게 되면 URL 주소가 바뀌어서 사용자들에게 혼란이 생긴다.한번 공개된 이상 비밀은 끝났다고 생각하면 이해가 된다. https://he..