분류 전체보기 118

BOJ: 파티(1238) [C++]

https://www.acmicpc.net/problem/1238 문제N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다.어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다.각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다.이 도로들은 단방향이기 때문에 아마 그들이 오고 가는 길이 다를지도 모른다. N명의 학생들 중 오고 가는데 가장 많은 시간을 소비하는 학생은 누구일지 구하여라.입력첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ..

알고리즘 2024.05.27

GPT 모델로 미술 작품 감상을 위한 채팅봇 구현하기

본 포스트에서는 프롬프트 엔지니어링을 통해 목적 달성에 적절한 시스템을 설계하고, 실제 사용자 테스트를 위해 Streamlit을 이용해 테스트 애플리케이션을 만드는 과정을 서술한다. 1. 프롬프트 설계프롬프트 엔지니어링이란 언어모델을 이루고자 하는 목적에 적합하게 그리고 효율적으로 사용하기 위해 프롬프트를 설계하는 기술을 뜻한다. GPT 모델에서 처리되는 메시지는 크게 3가지의 role을 가진다.system이 채팅에서 AI가 수행해야 할 역할. 어떤 작업을 수행할 것인지, 어떤 태도로 임할 것인지 등을 상세히 지정해줄 수 있다. 'You are a helpful assistant' 와 같은 문장이 대표적이다.assistant사용자의 메시지에 대한 AI의 답변.user사용자가 보내는 메시지.원하는 서비스를..

캡스톤 2024.05.27

9주차

4. Classes and Interfaces4.0 Classesclass Player { constructor( private firstName: string, //private는 JS에서 사용되지 않음 private lastName: string, public nickname: string ) {}}const cado = new Player("cado", "babo", "카도");cado.firstName //오류 - firstName은 privatecado.nickname //오류x abstract class(추상 클래스) : 다른 클래스가 상속받을 수 있는 클래스추상 클래스는 인스턴스를 만들 수 없음abstract class User { con..

ECC 2024.05.18

8주차

1. Introduction1.5 Why not JavaScriptWhy TypeScript? : Type Safety타입 안정성 - 코드에 버그 감소, 런타임 에러 감소, 더 나은 개발자 경험과 생산성 자바스크립트- 매우 유연한 언어. 에러를 보여주지 않으려고 노력함[1, 2, 3, 4] + false -> '1,2,3,4false' 와 같이 이상한 코드를 써도 에러가 나지 않음 2. Overview of Typescript2.0 How Typescript WorksTypescript : a strongly typed programming language that builds on Javascript.브라우저는 자바스크립트를 이해하므로 타입스크립트는 자바스크립트로 컴파일된다.TS는 변환 전 먼저 코드를..

ECC 2024.05.11

10 만난 지 며칠 U&I

#상태관리 #CupertinoDatePicker #Dialog #DateTime 10.1 사전 지식10.1.1 setState() 함수State를 상속하는 모든 클래스에서 사용 가능StatefulWidget의 렌더링이 끝난 클린 상태의 State ➡️ setSate()로 원하는 속성 변경 ➡️ 위젯이 더티 상태로 설정 ➡️ build() 재실행 ➡️ State가 클린 상태로 돌아옴 setState()는 매개변수로 콜백 함수를 입력받고, 이 콜백 함수에 변경하고 싶은 속성들을 입력해주면 해당 코드가 반영된 뒤 build()가 실행된다. 콜백 함수는 비동기로 작성될 수 없다. 10.1.2 showCupertinoDialog() 함수다이얼로그를 실행하는 함수. 실행 시 모든 애니메이션과 작동이 iOS 스타일로..

09 전자액자

#위젯생명주기 #PageView #Timer #SystemChrome #StatefulWidget 이미지 5개를 롤링해 보여주는 액자 앱 만들기- 좌우 스와이프 기능- 특정 주기마다 반복적인 함수 실행  9.1 사전 지식9.1.1 위젯 생명주기- StatelessWidget빌드되면 생성자가 실행되고, build() 함수가 실행되어 build()가 반환한 위젯이 화면에 렌더링됨모든 위젯은 Widget 클래스를 상속하고, Widget 클래스는 불변 특성을 갖는다. (한 번 생성하면 속성 변경 x) -> 한번 생성된 인스턴스의 build() 함수는 재실행되지 않음 - StatefulWidget외부에서 위젯 생성자의 매개변수를 변경해주면 위젯이 새롭게 생성되고 build()가 실행되기까지는 Stateless와 ..

08 블로그 웹 앱

#콜백함수 #웹뷰 #네이티브설정 8.1 사전 지식8.1.1 콜백 함수일정 작업이 완료되면 실행되는 함수. 정의 시 바로 실행되는 것이 아닌, 특정 조건이 성립될 때 실행된다.ex) onPageFinished()에 작성한 함수는 웹뷰에서 페이지 로딩이 완료되면 실행된다. 8.1.2 웹뷰 위젯웹뷰 : 프레임워크에 내장된 브라우저를 앱의 네이티브 컴포넌트에 임베딩하는 기능. 앱에서 웹 브라우저 기능을 구현해주는 기술네이티브 컴포넌트에 비해 속도가 느리고 애니메이션이 부자연스럽지만, 기존 웹사이트를 손쉽게 활용할 수 있음웹뷰 위젯은 controller 파라미터에 WebViewController 객체를 입력해야 한다. 웹뷰 컨트롤러는 웹뷰 위젯을 제어하는 데 필요한 기능들을 제공한다.*웹뷰 위젯의 속성- setJ..

07 앱을 만들려면 알아야 하는 그 밖의 지식

7.1 앱 만들기 프로세스기획(프로젝트 개요) - 사전 지식(필요한 지식 학습) - 사전 준비(프로젝트 생성 및 설정) - 레이아웃 구상 - 구현 - 테스트 * UI 프로토타입 도구- 피그마 : UI 디자인 특화. UI를 간단하게 구현하고 CSS나 플러터 코드로 받아볼 수 있는 기능 제공- 어도비 XD- 플러터 플로우 : 플러터에 특화된 UI 구현 툴. 웹에서 UI를 구현하면 플러터 앱을 반환해주는 노코드 솔루션 * 폴더 구조 참고- screen : 스크린 전체에 해당되는 위젯들을 모아두는 폴더- component : 스크린을 구성하는 데 공통으로 사용될 만한 요소의 위젯들을 모아두는 폴더- model : 모델- const : 상수 7.2 플러그인 추가 방법dependencies에 사용할 플러그인 추가 ..

06 기본 위젯 알아보기

6.1 위젯 소개위젯은 현재 주어진 상태(데이터)를 기반으로 어떤 UI를 구현할지를 정의한다.위젯의 상태가 변경되면 변경 사항에 알맞게 변경된 UI를 화면에 다시 그려준다. 이때 플러터 프레임워크는 기존 상태의 위젯과 새로운 상태의 위젯을 비교해서 UI 변화에 최소한의 변경사항을 산출해 그려낸다. (즉 퍼포먼스가 높음) 자식을 하나만 갖는 대표적인 위젯 (대체로 child 입력받음)- Container : 자식을 담는 컨테이너- GestureDetector : 제스처 기능을 자식 위젯에서 인식- SizedBox : 높이와 너비 지정 다수의 자식을 입력할 수 있는 대표적인 위젯 (children 입력받음, 리스트로 여러 위젯 입력 가능)- Column / Row : children들을 세로 / 가로로 배치..