본문 바로가기

반응형

전체 글

크루스칼 알고리즘 (Kruskal's Algorithm) Minimum Spanning Tree 문제를 해결하기 위해서 보통 두 가지 종류의 알고리즘 중 하나를 선택하여 사용한다. 1. 프림 알고리즘 (Prim's Algorithm) 2. 크루스칼 알고리즘 (Kruskal's Algorithm) 이 두 가지 알고리즘 모두 MST 문제에서 최적의 값을 도출할 수 있음이 이미 증명되어 있다. 이번에는 크루스칼 알고리즘에 대하여 알아보도록 하겠다. 크루스칼 알고리즘은 모든 Edge들에 대해 Weight가 작은 것부터 큰 순으로 Sorting 해놓고 Weight가 작은 Edge부터 MST에 포함시켜 나가는 방식을 사용하는데, 여기에서 핵심은 Edge를 추가했을 때 사이클 생성 여부를 체크하여 사이클이 생성되지 않는 경우 해당 Edge를 MST에 추가한다는 것이다. 모.. 더보기
프림 알고리즘 (Prim's Algorithm) Minimum Spanning Tree 문제를 해결하기 위해서 보통 두 가지 종류의 알고리즘 중 하나를 선택하여 사용한다. 1. 프림 알고리즘 (Prim's Algorithm) 2. 크루스칼 알고리즘 (Kruskal's Algorithm) 이 두 가지 알고리즘 모두 MST 문제에서 최적의 값을 도출할 수 있음이 이미 증명되어 있다. 이번에는 프림 알고리즘에 대하여 알아보도록 하겠다. 프림 알고리즘의 핵심은, 현재 우리가 가지고 있는 MST와 Edge 하나로 직접적으로 연결된 Vertex 가운데 Weight가 가장 작은 것을 추가한다는 것이다. 모든 Edge를 확인했는데 V-1개의 Edge가 선택되지 않은 경우가 있다면 그래프가 Disconnected 되어있다는 뜻이다. 이미 MST에 포함된 Vertex에.. 더보기
[멋쟁이사자처럼 X 넥슨] MapleStory Worlds X Supporters Hackathon : MSW 서포터즈 활동 후기 이번 여름방학에 멋쟁이사자처럼과 넥슨에서 함께 진행하는 서포터즈 해커톤에 참여하였다. 6월 29일 합격 메시지와 합격 메일을 받게 되었고, 이에 팀을 짜 활동하기 시작했다. 지원 당시에 같은 지역 사람들과 함께 했으면 좋겠다는 이야기를 작성하였는데, 그 덕분이었는지 전부 같은 학교 사람들과 함께 팀이 되었다. 7월 한 달 동안은 서포터즈 해커톤 노션에서 제공되는 기본 학습 교안을 학습하는 시간을 가졌다. 그에 대한 내용은 블로그에 기록해왔으며, 중간중간 미니 테스트 2번 또한 진행하였다. 8월 4일에는 멋쟁이사자처럼 매니저들 그리고 다른 서포터즈 분들과 함께 서포터즈 네트워킹 데이를 진행했다. 재미 없을 것만 같았는데, 의외로 꽤나 재밌었다. 각각 M팀, O팀, D팀을 나뉘어 게임을 플레이 했는데, 나는.. 더보기
파이썬 셀레니움 크롤링 : 유튜브(제목, 조회수, 게시일자, 채널명, 본문) 유튜브에서 '코딩'을 검색한 결과 창에서 제목, 조회수, 게시일자, 채널명, 본문을 크롤링하고, 그 데이터들을 엑셀 파일로 저장해 보았다. 코드 from selenium import webdriver from selenium.webdriver.common.keys import Keys import pandas as pd driver = webdriver.Chrome() driver.get("https://www.youtube.com/results?search_query=%EC%BD%94%EB%94%A9") driver.implicitly_wait(10) video = [] view = [] date = [] channel = [] explanation = [] for i in range(1,15): pr.. 더보기
[멋쟁이사자처럼 X 넥슨] MOD Supporters Hackathon 4주차 회고 (따라하기만 하면 만들 수 있는 장애물 피하기 게임) [7월 25일 : 1. 공중에서 도약하기] 회고 : 장애물 피하기 게임을 구현하기 위한 첫 번째 단계를 잘 수행했다. [7월 26일 : 2. 떨어지는 장애물 만들기] 회고 : 특정 위치보다 아래 위치로 가게 된다면 위치를 재설정해서 다시 떨어뜨린다. [7월 27일 : 3. 충돌 기능 구현하기] 회고 : 플레이어와 함정이 부딪히면 체력을 깍는다. 체력이 0보다 작아지면 0으로 설정하고 플레이러를 사망 상태로 처리한다. [7월 28일 : 4. 포션 기능 구현하기, 5. 포탈 구현하기] 회고 : 포션과 충돌하면 플레이어의 Hp가 회복된다. 포탈을 통해 다른 맵으로 이동할 수 있다. [7월 29일 : 6. UI 구현하기] 회고 : UI 설정을 통해 플레이어의 체력을 확인할 수 있다. [장애물 피하기 실습] 1차.. 더보기
[멋쟁이사자처럼 X 넥슨] MOD Supporters Hackathon 3주차 회고 (12. 알아두면 유용할 것들) [7월 22일] ● Model - 모델 : Entity에 Component를 추가해 모델화 할 수 있다. - Original Model : 빈 Entity에서 Component들을 추가해 새로운 무엇인가로 만든 것이다. - Child Model : 기존 Entity에서 상세 Component만 바뀐 것으로, 기존 Entity에서 파생된 모델 [모델과 관련된 기능] - apply : 어떤 기능을 모델 전체에 추가 시 사용 - revert : 부모 모델에서 추가된 기능을 현재 모델에 추가 시 사용 ● Player 기본 속성 변경 - Player의 모델 Property는 기존 Component에서 필요한 몇 가지 Property만을 골라 연결한 것이다. 모델 Property 명 원 Component 원 Pro.. 더보기
[멋쟁이사자처럼 X 넥슨] MOD Supporters Hackathon 3주차 회고 (11. UI 에디터의 이해) [7월 21일] ● UI 에디터의 구성 UI 에디터 요소 설명 모델 리스트 * 메이커에서 제공하는 다양한 UI Preset 활용 가능 UI 경로 정보 * 선택된 UI Entity의 경로 정보를 얻어오는 기능 캔버스 * UI 엔티티의 배치 및 편집을 작업하는 공간 * (실행 시 캔버스에 배치된 레이어대로 화면에 출력) 기본 도구 * 이미지 & 버튼 등의 UI Entity 배치 가능 UI Group 편집창 * UI Group의 선택 / 추가 / 삭제 기능 제공 - UI Entity를 위해 UI를 편집하기 위해서는 가장 먼저 조작할 UI Entity가 필요하다. [UI Entity 생성법] - 기본 UI 모델을 선택해 배치하는 방법 - UI Preset을 활용하는 방법 ● 기본 UI Entiy - 기본 UI .. 더보기
[멋쟁이사자처럼 X 넥슨] MOD Supporters Hackathon 3주차 회고 (10. 컴포넌트의 활용 2) [7월 20일] ● 입력 관련 컴포넌트 - Entity Event Handler에서 작업한다. Event 설명 KeyDownEvent * 키를 1번 눌렀을 때 발생 KeyHoldEvent * 키를 누르는 동안 발생 KeyReleaseEvent * 키를 길게 눌렀다 뗐을 때 발생 KeyUpEvent * 키를 1번 눌렀다 뗄 때 발생 ● TouchEvent Event 설명 ScreenTouchEvent * 월드상의 화면을 터치, 또는 클릭했을 때 1회 발생하는 이벤트 ScreenTouchHoldEvent * 월드상의 화면을 터치하고 있는 동안 프레임마다 발생하는 이벤트 ScreenTouchReleaseEvent * 터치를 유지하다가 터치를 종료했을 때 1회 발생하는 이벤트 * 이벤트를 추가하려는 Compon.. 더보기

반응형