전체 글 95

[백준/Python] 1715번 카드 정렬하기

드디어 골드문제 도전! https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 풀이 from queue import PriorityQueue n = int(input()) card = PriorityQueue() lst = [] for _ in range(n): card.put(int(input())) for i in range(n-1): temp = card.get(card)+card.get(card) card.put(temp) lst..

알고리즘/백준 2023.09.20

Do It! 인터랙티브 웹 페이지 만들기 | Chapter02 정리

시맨틱 태그 웹 페이지를 만들 때 HTML5의 시맨틱 태그를 이용하여 영역을 구분하여 기본 구조를 정해야한다. 종류 설명 머리말 영역 링크 등의 메뉴 영역 동영상, 사진 등 다양한 멀티미디어를 담는 영역 웹 문서의 본문으로 콘텐츠를 담는 영역 본문과 연관성이 적은 외부 영역 특정 영역을 그룹화한다. 기사나 개별 콘텐츠를 담는 영역 꼬리말 영역 참고로 VSCode에서 ctrl + alt + f 를 누르면 코드들이 자동 정렬된다. 서식태그 block 요소와 inline 요소 블록 요소( Block element ) - 사용 가능한 최대의 가로너비 사용 ( default width 100% ) - 한 줄에 한개 배치 - 레이아웃 작업하기 용이 인라인 요소 ( Inline element ) - 필요한 만큼의 영..

스터디/front 2023.09.19

Do It ! 인터랙티브 웹 페이지 만들기 | Chapter01 정리

스터디를 위한 책 정리~ Chater 01 웹 페이지 제작 준비하기. UI ( User Interface ) - 사용자 환경을 의미. - 사람들이 콘텐츠를 이용할 때 만나는 도구와 사용 환경을 의미한다. UX ( User Experience ) - 사용자 경험을 의미. 인터랙티브 UI/UX ( Interactive UI/UX )란? 사용자와 상호 작용하는 여러 모션과 동적인 콘텐츠를 사용하는 환경을 의미한다. HTML, CSS, Javascript 의 역할 HTML - 뼈대 CSS - 디자인 Javascript - 기능 부여 예제 html:5만 입력하고 enter를 누르면 DOCTYPE html> Document 이렇게 기본 구조로 자동완성 된다.

스터디/front 2023.09.19

[백준/Python] 2869번 달팽이는 올라가고 싶다

https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B = v: break day -=b print(cnt) 처음에는 이렇게 풀었는데, 입력의 숫자가 커질수록 시간초과가 발생했다. 반복문 없이 풀어야 시간초과 문제를 피할 수 있어서 고민하다가 결국 구글의 도움을 받았음...ㅠㅠ import sys im..

알고리즘/백준 2023.09.12

자바스크립트로 테트리스 만들기 (JS)

오늘은 심심해서 무엇을 해볼까 하다가 테트리스 게임 만들기를 해보려고 한다. 물론,,, 다른 분의 블로그를 보면서 만들어볼 것이다.! https://ui.toast.com/weekly-pick/ko_20191216 모던 자바스크립트로 테트리스 만들기 오늘은 고전 게임인 테트리스로 게임 개발 여행을 해보려고 한다. 그래픽, 게임 루프 및 충돌 감지 등을 다루고, 마지막에는 점수와 난이도가 완벽하게 작동하는 게임을 갖게 될 것이다. ui.toast.com 참고한 블로그 블로그를 보면서 만들 때 조금씩 다른 점을 여기에 적어보려고 한다. 파일은 이렇게 형성했다. 참고로 css 랑 js 연결하려면 index.html에 링크로 연결해야한다.. 확실히 파일을 나눠서 관리하니까 관리하기 좋은 것 같다. DOCTYPE..

FE/javascript 2023.09.06

[백준/Python] 1159번 농구 경기

https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net [풀이] n = int(input()) arr = [] lst = [] for _ in range(n): name = input() arr.append(name[0]) for i in arr : if arr.count(i) >= 5 : lst.append(i) result = "".join(sorted(list(set(lst)))) elif len(lst) == 0 : result = 'PREDAJA' ..

알고리즘/백준 2023.09.01

LangChain(랭체인)과 GPT로 AI 웹 서비스 만들기

LangChain으로 웹페이지와 연결 후 GPT API 를 이용하여 하나의 작은 서비스를 만들어 볼 것이다. ( GPT API 는 카드 등록해야해서, 실제로는 meta에서 만든 llama를 이용할 것이다.) -> 나중에 GPT API 활성화만 시키면 그대로 사용 가능. LangChain 이란? LLM 어플리케이션 개발 프레임워크이다. [ GPT API 연결할 때 ] .env 파일에 API 키 값 넣어주기 OPENAI_API_KEY=API키값넣기 터미널에 파이썬 확장프로그램 설치 pip install python-dotenv 설치 후 from dotenv import load_dotenv load_dotenv() main.py 에 입력해줌 랭체인 설치 https://python.langchain.com/d..

AI 2023.08.29

[백준/Python] 1181번 단어 정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net [풀이] n = int(input()) word =[] for _ in range(n): word.append(input()) word = sorted(list(set(word)), key=lambda x: (len(x),x) ) print(*word, sep='\n') 람다식을 사용하니 간단하게 나타낼 수 있었다. (아직 람다식 사용에 익숙하지 않아서, 많이 연습해봐야 할듯...) 이..

알고리즘/백준 2023.08.21

좋은 객체 지향 설계의 5가지 원칙 (SOLID)

SOLID 란? -> 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것이다. SRP (Single Responsibility Principle) : 단일 책임 원칙 OCP (Open/Closed Principle) : 개방-폐쇄 원칙 LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 DIP (Dependecy Inversion Principle) : 의존관계 역전 원칙 SRP (Single Responsibility Principle) : 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다 ( 클 수 있고, ..

Java/Spring 2023.07.27