분류 전체보기 249

그리디(탐욕) 알고리즘에 대한 정리 - 세기무민

안녕하세요 세기무민입니다. 이번 포스팅에서는 그리디 알고리즘에 대해 다뤄보도록 하겠습니다. Greedy? 탐욕? 우선 그리디 알고리즘은 탐욕 알고리즘이라고도 말합니다. 그리디 알고리즘에서 가장 중요하게 생각하는 포인트는 "현재 선택지 중 가장 좋은(최적)의 방법을 선택하는 것" 그리디 알고리즘에 대한 가장 좋은 예시는 최단거리를 구하는 것이다. 아래의 그림으로 설명해보면 시작 지점으로부터 끝지점까지 최단거리를 구해보도록 하자. 시작 지점에서 4로 시작하는 경우 2가지의 경우의 수가 만들어지며 20, 23의 거리를 가진다. 시작 지점에서 4보다 큰 6으로 시작했을 경우 19의 거리를 가지게 되고 최종적으로 가장 짧은 거리를 가지게 된다. 즉 그리디 알고리즘은 여러개 중 한개를 선택해야 할 경우 그 순간에 ..

프로그래머스 자물쇠와 열쇠 문제 풀이 - [세무민의 코딩일기]

ㅋ안녕하세요 세기무민입니다. 이번에 풀어볼 문제는 2020년도 카카오 블라인트 문제 중 하나인 자물쇠와 열쇠 문제입니다. 문제 설명 입출력 예시 문제 풀이 흠.... 개인적으로 일단 이번 문제에서 포인트는 배열 회전하는 것이라고 생각한다. 파이썬에서 배열 회전에 사용되는 내장 함수 중 Zip이라고 있는데 이걸 사용하여 0 / 90 / 180 / 270도 회전하여 한번씩 key를 넣어보면 되는 문제이다. 아래의 그림으로 좀더 쉽게 설명해보면 간단한 예시로 Lock과 Key의 값은 위와 같고 0도부터 하나씩 Lock에 Key를 넣어줍니다. 넣었을 때 Lock의 모든 값이 1이라면 True를 반환해주면 되고 0, 90, 180, 270도 회전하여 동일하게 하나씩 탐색했음에도 불구하고 모든값이 1인 경우가 없다..

세무민의 코딩일기 : Spring Boot + GraphQL 연결하기

안녕하세요 세기무민입니다. 이번 포스팅에서는 Spring Boot와 GraphQL을 사용해보도록 하겠습니다. GraphQL? GraphQL은 페이스북에서 만든 쿼리 언어입니다. GrahpQl은 웹 클라이언트가 데이터를 서버로부터 효율적으로 가져올 수 있도록 되어있습니다. REST API의 경우는 다양한 EndPoint가 존재한다면 GraphQL은 하나의 EndPoint를 가집니다. 즉 기존에 Url을 보면 이해하기 쉽다. Rest Api의 경우는 /newPost, /comments, /user 등 다양한 endPoint를 가지지만 gql(GraphQL)은 /graphql 하나의 endpoint 만으로도 사용이 가능하다는 점이다. GraphQL | A query language for your API Ev..

Programing/GraphQL 2022.05.01

세무민의 코딩일기 : NodeJs를 이용한 File Create 및 Delete하기

예전에 Node.js 공부를 했던 내용에서 추가로 공부를 한 내용을 기반으로 다뤄보겠습니다. Node.Js를 사용하면서 느낀점은 서버 구현이 간편하고 비동기적인 병행처리가 매력적입니다. Node Pacakge Module 즉 NPM이 매력적이라는 생각이 들더라구요 ㅎㅎ 본론으로 들어가서 보면 기존에 만들었던 화면에서 파일 생성과 파일 삭제를 추가해봤어요 화면 가장 기본 화면입니다. 기본 Main에서는 현재 파일들을 보여주는데 sg-test와 table이라는 파일을 가지고 있습니다. 여기서 create를 실행하면 내용을 추가할 수 있도록 구성했고 위와 같이 새로 생성된 것을 확인할 수 있으며 새로 생성한 파일을 수정도 가능합니다. (삭제도 가능해요 ㅎㅎ) 코드 Main.js var http = requir..

Programing/NodeJs 2022.04.25

pygame을 이용하여 슈팅게임 만들기 1탄 [세무민의 코딩일기]

안녕하세요 세기무민입니다. 이번에는 파이썬으로 게임 개발하는 포스팅으로 찾아왔어요...ㅎㅎ 사실 진짜 취미로 시작했다가 재미가 붙어서...ㅎ 무튼 포스팅 해보도록 할께요 ㅎ 게임 화면 및 과정 조금 허접한 메인 화면입니다..ㅎ 아직 초기 단계로 개발한거라서 사실 디자인은 추후에 바꿔볼 생각입니다. 여기서 키보드 'A' 를 클릭하면 실행이 됩니다. 실행이 되면 큰 운석과 작은 운석들이 랜덤하게 나오도록 구성했어요 큰 운석의 경우 2번, 작은 운석은 1번 공격하면 없애지도록 구성했습니다. 그리고 운석에 부딛히게 되면 게임이 종료되도록 구성했고 현재까지 개발한 게임 구성은 위와 같아요 ㅎㅎ 게임 개발 To-Do List 사실 심플 프로젝트처럼 할 생각은 없었는데 하다보니 뭔가 욕심이 생기더라구요...ㅎ 그래서..

Programing/Python 2022.04.06