분류 전체보기

문제https://www.acmicpc.net/problem/12851 문제 분석해당 문제는 BFS 유형이다.  왜 BFS인가?처음에는 DP라고 생각을 했다. 이상하게 유독 BFS문제를 보면 DP라고 생각할 때가 종종 있는 것 같다... 하지만 이 문제가 BFS유형임에 확실한 것은 (물론 DP로도 풀려고하면 풀 수도 있겠지만) "가장 빠른 시간" 과 "가장 빠른 시간으로 찾는 방법" 이라는 키워드가 있기 때문이다. 가장 빠른 방법 중에서도 특히나 가중치가 없는 그래프의 경우에는 BFS임이 자명하다. 만약 가중치가 있을 경우에는 다익스트라 알고리즘을 사용해야한다. 특히나 트리일 경우에는, BFS는 반드시 "최단경로"를 거칠 수 밖에 없다. 왜냐하면, 해당 노드 간의 경로가 단방향, 또한 하나만 존재하기 때..
1. What I learned today1. 객체를 접근하는 권한 이해하기객체가 만들어졌다는 것은, 누군가에게 사용이 되어야 한다는 점에서 의미가 있다.그런데 어떠한 객체를 만들었을 때, 어떤 것은 외부에서 접근이 가능하게 허가할 수도 있고 허가하지 않을 수도 있다. 그렇게 함으로서 객체를 조금 더 안전하게 사용할 수 있다.⭐ 객체끼리 서로가 상호작용할 때 서로가 접근할 수 있는 부분과 할 수 없는 부분을 중점으로 즉 **“권한”**에 대해서 학습을 해보자. 🚀 학습 목표객체 지향 프로그래밍에서는 객체 상호간에 접근을 제어할 수 있어야 한다.ex. 두 클래스가 가지고 있는 상태와 동작을 상호간에 접근을 허용할 수 있어야 되고, 접근을 막아야 되는 경우가 있기 때문이다.이번 시간에 알아볼 내용접근 제어..
현실 세계에서는 다양한 객체들이 존재하고 그 객체들은 자신의 역할이 정해져 있다. 객체지향 프로그래밍에서는 클래스를 객체로 설계하기 때문에 클래스를 모델을 설계하는 도구라고도 한다. 01. 모델(Model)이란 무엇인가 객체_Object(현실적) = 클래스_class(프로그래밍적)=모델_Model(소프트웨어공학적) 객체지향 프로그래밍에서 클래스를 역할에 따라 부르는 이름을 모델(Model)이라고 부른다. 역할에 따라 다양한 모델을 만들어 사용할 수 있다. 클래스로 만들어 사용하게 될 모델의 종류 개념 모델 시작 클래스 시작 클래스(모델) DTO, VO Model 데이터를 담는(이동) 모델 DAO Model 데이터를 처리(DB)를 하는 모델 DBMS에 접근하는 모델 (Data를 CRUD 하는 기능을 가지고..
· Backend
이번 게시물에서는 Amazon S3에서 이미지를 업로드 하기 위한 Pre-Sign url를 생성하는 방법을 다룰 것이다!! 요즘 Naver Clova OCR을 활용하여 텍스트를 추출하여 AI 모델에 해당 결과를 프롬프트에 포함하여 정해진 json 형식에 맞추어 결과를 반환하는 일을 하고 있는데, OCR에 이미지를 url로 요청하게 되는데 이때 이미지 호스팅이 필요하고, 이 이유 외에도 추후에 모델 학습이나 비지니스 로직에 의해서 변환을 시도한 이미지를 저장해두는 편이 좋기 때문에 S3에 호스팅하기로 결정했다. 🤔 Presigned url 이란? 미리 서명된 url이다. 다른 사람(클라이언트)로 하여금 버킷에 객체를 업로드/조회할 수 있다. 해당 url을 사용할 경우 AWS 보안 자격 증명이나 권한이 없어..
· Backend
아키텍처 고민하기 마이로서비스는 아키텍처의 한 종류이며, MVC, MVP 또한 아키텍처다. 차이점이라 하면 시스템 수준의 아키텍처와 클래스 수준의 아키텍처의 차이다. 어디까지가 아키텍처고 어디까지가 상세 설계에 속하는지 명확하게 구분하기는 어려우나, 아키텍처는 설계 과정에서 나오는 결과물이라는 것이다. 아키텍처를 결정하는 요인 특정 아키텍처가 유행한다고 선택하면 안된다. 기능 요구 사항과 품질속성/비기능 요구사항을 고려해야 한다! ✏️ 기능 요구사항 기능 요구사항이란 소프트웨어로 해결하고자 하는 문제와 관련이 있다. 기능 요구사항은 아키텍처에게 영향을 준다. ✏️ 품질속성/비기능 요구사항 품질 속성의 예로는 성능과 확장성이 있다. 어떤 품질 속성은 업무 도메인에서 도출된다. (법률 조건) 품질속성은 대부..
알고리즘의 정당성 증명 해결해야 할 문제가 간단할 때는 직관적으로 알고리즘을 설계할 수 있지만, 문제가 복잡해지면 알고리즘이 과연 문제를 제대로 해결하는지 파악하는 것이 힘들다. 물론 단위테스트를 통해서 해결할 수도 있겠지만, 이 방법으로는 턱없이 모자라다. 따라서, 알고리즘의 정확한 증명을 위해서는 각종 수학적인 기법이 동원되어야 한다. 알고리즘에 대한 증명은, 알고리즘을 유도하는 데 결정적인 통찰을 담고 있다. 모든 알고리즘은 치열한 고민과 개선 과정을 거쳐 태어나고 이 과정에서 결정적으로 필요한 깨달음이 증명에 담겨있는 경우가 많다. 또한, 증명을 아는 편이 사용하는 입장에서도 큰 공부가 된다. 1. 반복문 불변식 귀납법은 알고리즘의 정당성을 증명할 때 가장 유용하게 사용되는 기법이다. 대부분의 알..
지미닝
'분류 전체보기' 카테고리의 글 목록 (2 Page)