2024/07 42

RDBMS NoSQL MongoDB

🌟시작하기에 앞서나보고 RDBMS와  NoSQL를 설명해보라고 하면, RDBMS는 잘 정리된 DB,  NoSQL는 마구잡이 DB라고 할 것 같다. 이번에 따로 프로그래밍 공부를 하는데, 거기에서 MongoDB가 나왔다.그래서 MongoDB 는 RDBMS와  NoSQL 중 어떤 것인지 알고, RDBMS와  NoSQL에 대해 좀 더 명확히 개념화를 해보려 한다.  포스팅 구성은 아래와 같다.1. DB 종류 ( RDBMS와  NoSQL)2. 특징 및 사용 사례3. MongoDB 특징  (각 부분에 구체적인 설명도 포함했다.)📚DB의 종류   여기에 RDBMS와  NoSQL의 프레임 워크들이 나오는데, 프로그래밍을 하면 언젠가는 쓸 프레임 워크들이니 보면서 익숙해져보자 ! 📘 RDBMS 데이터를 테이블 형..

SQL 2024.07.08

[Python][백준] 1138.한 줄로 서기

링크🔗https://www.acmicpc.net/problem/1138🗒️파이썬 코드 풀이N = int(input())lst = list(map(int,input().split()))ord = [i for i in range(1,N+1)]result= []for i in range(N-1,-1,-1): result.insert(lst[i],ord[i])# 리스트 값 출력을 위해 str로 변경str_rs = [str(result[i]) for i in range(N)]print(' '.join(str_rs)) 1.  2개의 리스트를 만든다.  ( lst는 입력을 저장한 리스트, ord는 1~N까지의 리스트 ) 2. 입력받은 값들을 기준으로 1~N을 거꾸로 하나 하나 삽입 해주면 된다. 🌟 ins..

[Python][백준] 2075. N번째 큰 수

링크🔗https://www.acmicpc.net/problem/2075🗒️파이썬 코드 풀이import sysimport heapqN = int(input())heap = []for _ in range(N): lst = map(int,sys.stdin.readline().rstrip().split()) for ls in lst: if len(heap)   1.이 문제에서 N^2개의 숫자를 모두 배열에 저장하고 조건에 따라 처리하는 방식은 시간 초과가 된다. 2. 입력된 각각의 줄의 값들을 반복문으로 하나 하나 ls에 넣어주고,  우선순위 큐의 크기를 N개로 제한 한 후 ,  ls가 우선순위 큐의 첫번째 인덱스 보다 큰 값이면, 우선순위 큐의 첫번째 인덱스 지우고 바꿔준다.  3...

[Python][백준] 1927. 최소 힙

링크🔗https://www.acmicpc.net/problem/1927🗒️파이썬 코드 풀이import sysimport heapqT = int(input())heap = []for _ in range(T): n = int(sys.stdin.readline()) if n > 0 : heapq.heappush(heap,n) else: if heap: print(heapq.heappop(heap)) else : print(0) 1. heapq 라이브러리를 import 한다. 2. 입력받은 n이 0보다 크면 heap에 push 하고,0보다 작고 힙의 크기가 0이 아닌 때에는 heappop으로 가장 작은 요소를 제거..

[Python] 가상환경 설치 및 requirements.txt 사용해보기

✨파이썬 가상환경가상환경은 파이썬에서 독립적인 프로젝트를 위한 개별적인 공간  가상환경하면 뭔가 어려워 보인다. 그래서 프로젝트에 잘 안하곤 했는데, 이게 사실은 엄청 간단하고 한번 만들어두면 또 편하니 잘 활용해보자. 📌가상환경 특징1. 독립성 : 가상환경은 특정 프로젝트에 필요한 패키지와 의존성을 독립적으로 설치 및 관리2. 의존성 관리 : 프로젝트 간의 버전으로 인한 충돌 피할 수 있음3. 경량화 : 필요한 패키지와 파이썬 실행 파일만 포함하므로 비교적 가벼움  🔍가상환경 관리 도구 `venv` vs `virtualenv`venv :1. Python 3.3부터 표준 라이브러리에 포함되어 있어 설치 없이 사용 가능2. Python 3.X 버전에서만 사용 가능 3. 필요한 최소한의 기능만 포함하여 ..

Python 2024.07.06

[Python][백준] 19941. 햄버거 분배

링크🔗https://www.acmicpc.net/problem/19941🗒️파이썬 코드 풀이N,K = map(int,input().split())lst = list(input())cnt = 0for i in range(N): if lst[i] == "P": for s in range(i-K,i+K+1): if 0 1. 더 많은 사람들이 햄버거를 먹기위해서, 최대한 왼쪽부터 먹어줘야한다. 2. 우선 lst[i] = "P"일 때의 조건을 세팅해두고 3. s의 범위를 (i-k ~ i+k)로 해두고 4. 0 ≤ N   📌  문제 코멘트범위 설정만 잘하면 어렵지 않은 문제이지만,나는 저 범위 설정을 잘 못해서 시간이 오래 걸렸다 ...내가 풀이했던 방식은 양쪽 큰 순서대..

[Python][백준] 1515. 수 이어 쓰기

링크🔗https://www.acmicpc.net/problem/1515🗒️파이썬 코드 풀이lst = list(input())cnt = 0while lst: cnt += 1 str_cnt = str(cnt) while str_cnt and lst: if lst[0] == str_cnt[0]: lst = lst[1:] str_cnt = str_cnt[1:] print(cnt) 1. 브루드 포스 방식으로 문제 풀이를 진행한다.  (cnt 값을 계속 증가시켜, lst에 있는 숫자와 비교) 2. while을 통해 완전히 lst가 비워질 때 까지, 계속 cnt 값을 증가시킨다.  3. lst와 비교를 위해 cnt를 문자열로 바꿔준다. 4..

[JS] AJAX(Asynchronous Javascript And XML) 는 무엇일까 ?

🔍 AJAX (Asynchronous Javascript And XML)자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능이다. 📌AJAX의 약자 XML은 무엇일까?XML은 EXtensible Markup Language의 약자로, HTML과 비슷한 문자 기반의 마크업 언어이지만,HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달하는 목적으로 만들어졌다. 수많은 응용 분야에서 데이터를 저장하고 전달하는 중요한 역할을 맡고 있다. 📕 AJAX 특징 1. 웹 페이지 새로고침 없이 (비동기 방식) 동적으로 업데이트가 가능하다. 2. HTML / CSS / JS / DOM / XML or JSON 등의 여러 기술을 조합하여 사용 됨3. jQuery가 ..

WEB/frontend 2024.07.05

[Python][백준] 21921. 블로그

링크🔗https://www.acmicpc.net/problem/21921🗒️파이썬 코드 풀이N,X = map(int,input().split())lst = list(map(int,input().split()))sum_lst = [sum(lst[0:X])]for i in range(0,N-X): tmp_sum = sum_lst[i] + lst[i+X] - lst[i] sum_lst.append(tmp_sum)if sum(lst) > 0 : print(max(sum_lst)) print(sum_lst.count(max(sum_lst))) else : print("SAD") 1. 입력 받은 리스트 0~X-1 까지의 합을 sum_lst 첫 번째에 넣어준다. 2. X일 동안..