728x90

전체 글 93

[프로그래머스 lv 1] 체육복.java

https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 최종적으로 체육수업을 들을 수 있는(체육복이 있는) 학생의 수를 구하면 된다. 여벌 체육복이 있는 학생은 체육복을 도난 맞은 학생에게 빌려줄 수 있는데, 이때 자신의 앞, 뒤 번호를 가진 학생에게만 빌려줄 수 있다. (여벌 체육복이 있는 학생이 도둑맞았다면 다른 학생에게 빌려줄 수 없다.) 입출력의 예는 다음과 같다. n lost reserve return 5 [..

알고리즘 2022.04.08

[자료구조] 탐욕법 (그리디 알고리즘 - Greedy algorithm)

💛 탐욕법이란? 현재 상황에서 가장 좋은 선택을 고르는 알고리즘 이전에 살펴본 동적 프로그래밍을 간단한 문제 해결에 사용하면 지나치게 일을 많이 한다는 문제점을 해결하기 위해 등장했다. 지나치게 일을 많이 하는 경우를 방지해주긴 하지만, 항상 최적해를 보장하는 동적 프로그래밍에 비해 탐욕법은 항상 최적의 해를 보장하지는 않는다. 위의 간단한 트리를 보면서 탐욕법으로 구한 해와 동적 프로그래밍으로 구한 해가 어떻게 다른지 알아보자 루트 노드에서 시작해서 지나친 모든 노드의 수를 더했을 때 가장 결과 값이 큰 경로를 구한다고 하면 노란색의 노드를 지나가는 경로가 탐욕법으로 구한 결과이고 연두색의 노드를 지나가는 경로가 동적 계획법으로 구한 결과 이다. 이처럼 탐욕법은 현재 시점에서 하는 선택만을 고려하기 때..

알고리즘 2022.04.07

[프로그래머스 lv 3] 가장 먼 노드.py

https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr n개의 노드가 있는 그래프가 있다. 각 노드는 1번 부터 n번 까지 번호가 부여되어 있다. 1번 노드에서 가장 멀리 떨어진 노드의 개수를 구하면 되는 문제이다. 이때 가장 멀리 떨어지는 노드는 최단 경로로 해당 노드까지 이동했을 때 간선의 개수가 가장 많은 노드를 의미한다. 입출력의 예는 다음과 같다. n vertex return 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]..

알고리즘 2022.04.06

[고양이와 책을] 프로젝트 결과 정리

무려 작년 12월(11월말쯤) 부터 시작한 사이드 프로젝트가 드디어 끝났다. 그동안 좀 루즈하게 진행되기도 해서 4월에서야 끝이 났다. 프로젝트의 주제 키워드로 책을 검색하고 그 중 선택한 책에 대해서 서평을 작성할 수 있는 사이트 이후 작성한 서평을 목록 형태로 관리할 수 있다. 사용한 기술 우선 프론트로 React, 백엔드로 Django를 사용했다. 또한 책 검색 API로 카카오 검색 open API를 사용했으며, 서버 배포르 위해 GCP의 conpute instance를 사용했다. 기능 목록 * 회원 관련 기능 (회원가입 / 로그인 / 회원 정보관리) * 검색 관련 기능 (키워드로 책 검색 - 랜덤으로 5개의 결과가 나옴) * 서평 관련 기능 (서평 작성, 수정, 삭제, 상세보기 및 목록 보기 기능..

[자료구조] 다익스트라

다익스트라 알고리즘(Dijkstra algorithm)이란? 다익스트라 알고리즘은 가중치 그래프에서 SP(최단경로) 문제를 해결하기 위해 등장한 알고리즘이다. 최단경로 문제는 두 정점을 연결하는 여러 경로들 중에서 간선들의 가중치 합이 최소가 되는 경로를 찾는 문제로, 다익스트라 알고리즘은 SP문제중 Single Source SP(시작정점 v에서 다른 모든 정점까지의 최단 경로 찾기)를 해결하기 위한 알고리즘이다. (단, 음수 간선에 대해서는 성립하지 않는다.) 문제 해결을 위한 기초 생각 시작 노드 정하기 시작 노드에서 가장 가까운 노드를 계속 탐욕적으로 선택 이미 찾은 최단경로에 그 가까운 노드를 더함 더 꼼꼼히 생각해보기 3번과 같이 생각하다보면 한 노드에 접근 할 수있는 엣지가 많을 경우에는 어떤..

알고리즘 2022.04.04

13주차 정리(3/28~4/1)

이전 주차 정리글 올린지 이틀만에 올려서 이게 뭔가 싶지만 사실 오늘 올리는 게 주차에 맞는 것이고 이전까지가 밀린... 것.... 이었다. 항상 수업을 듣고 이것저것 하다보면 주차별 회고가 늦어지는 것 같아서 이번엔 초심대로 금요일에 적어보았다. 사실 이번주 내내 프로젝트만 진행해서 수업 정리랄 것은 없지만 프로젝트 내용을 정리할 포스트에는 내용 위주로 담을 것이라 이번 포스트에서 감상 위주로 작성해보고자 한다. 카테고리인 ' 수업 정리 '에는 부합하지 않아보이긴 하지만 뭐... 감상 정리도 정리니까...?! 프로젝트 게시글에도 나올 이야기이긴 하지만, 이번 프로젝트에서는 백엔드를 담당하면서 꼭 서버 배포까지 해보고 싶었다. 이때까지 완전한 성공을 해본적이 별로 없는 지라, 그리고 스프링 부트로는 올려..

[프로그래머스 lv 3] 정수 삼각형.java

https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 문제 설명에 이미지가 필요한 관계로 위 링크에 직접 접속해서 보는 것이 편할 것이다. 입출력의 예는 다음과 같다. triangle result [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 거쳐온 숫자의 최대값을 리턴해야 하므로 항상 최적의 해를 보장하는 알고리즘인 DP(동적 계획법)을 사용하기로 했다. triangle[0][0]의 위치에서부터 하나씩 내려오면서 가질 수 있는 경..

알고리즘 2022.03.31

12주차 정리(3/21~3/25)

세상에 전날에 글을 안올렸다니 내 알흠다운 달력에 구멍이 뚫려서 너무.. 슬프군요,, 지금 중간 프로젝트 기간이라 정신이 하나도 없었는지 포스팅도 까먹고... 나는 멍청이 중간 프로젝트 직전주였던 12주차에는 스프링을 백엔드로 해서 react로 만든 프론트와 연결하는 작업을 진행했다. Entity, DTO, Controller, Service, Repository를 만들어서 어디에 어떤 목적의 코드가 들어가는 지를 실습해보고, 더 좋은 코드를 만들기 위해서 어떻게 하는 지도 살펴보았다. 일단 Entity와 DTO를 공부했다. 둘은 데이터 객체라는 공통점이 있지만, 미묘하게 다르다. Entity는 DB와 소통하기 위한 객체인 만큼 DB에 저장될 데이터를 기준으로 작성하고, 타입이나 조건들도 달라질 수 있다..

[Server] Cloud Server

클라우드 서버 (Cloud Server) ☁ 클라우드 서버란? 애플리케이션 및 정보처리 스토리지로 사용되는 강력한 물리적 또는 가상의 인프라 일반적으로 기업들은 IaaS 모델으 사용해서 워크로드를 처리하고 정보를 저장 쉽게 말해 클라우드 서버는 클라우드 컴퓨터(가상의 컴퓨터)의 서버를 사용하는 것을 의미한다. 또한 클라우드 서버는 가상화 소프트웨어를 사용해서 물리적 서버를 다수의 가상 서버로 분할함으로서 구축된다. 🤷‍♂️ 웹 호스팅? 서버 호스팅? 클라우드? 서버 이야기를 할때 자주 듣는 용어들이다. 각각이 어떤 차이가 있는 지 알아보자 웹 호스팅 가장 쉽게 접해볼 수 있는 웹 서비스 운영 방식이다. 서버에 신경쓰고 싶지 않고, 가벼운 서비스를 하고 싶을 때 사용한다. 서버 호스팅 업체의 물리서버를 대..

개인공부/BE 2022.03.28

[미니프로젝트4] React_Image_Search

4번째로 진행한 미니프로젝트로, 리액트를 마무리짓는 느낌으로 진행된 프로젝트였다. 프로젝트를 간략히 소개해보자면 다음과 같다. 이미지 검색 API를 이용하여 키워드에 대한 이미지 검색 결과를 출력하고 원하는 결과가 아닐 경우 쿼리 재조합을 통한 재검색 기능 구현 🚀 프로젝트의 상세내용은 다음과 같다. 사용자가 입력한 텍스트로 이미지 api를 호출 해당 텍스트로 검색된 image를 보여줌. 사용자가 원하는 이미지가 아닐 경우 (ex: 대선을 입력시 大選이 아니라 소주 '대선'이 나오는 경우) 아래 로직을 수행함. a. 검색 api를 통한 텍스트에 대한 뉴스 기사들을 크롤링 b. 텍스트를 긁어온 후에 Koalanlp를 사용해서 명사들을 추출 c. 명사들의 빈도수를 측정 d. 빈도수가 높은 명사들을 하나씩 텍..

728x90
반응형