백준 / 2293번 / 동전 1 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/2293  평소 DP 문제들의 접근에 어려움을 느끼는데 점화식을 세우는 것이 어려운 것 같다. 이번 문제도 점화식 아이디어가 떠오르지 않아서 검색을 통해 공부하고 접근법을 이해하는 데에 노력하였다.단순히 코드를 보는 것만으로 이해가 어려울 때엔 유튜브로 해설 영상을 통해 보다 쉽게 이해할 수 있다.    정답 n, k = map(int, input().split())coins = [int(input()) for _ in range(n)]coins.sort()DP = [0] * (k + 1)DP[0] = 1for c in coins: for i in range(c, k + 1): DP[i] += DP[i - c]print(..
백준 / 2579번 / 계단 오르기 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/2579  다이나믹 프로그래밍 (DP) 문제이다.  계단을 오르며 얻을 수 있는 최댓값을 구하면 되는 문제이지만 조건이 있다.1. 한 번에 한 계단 혹은 두 계단씩 오를 수 있다.2. 연속된 세 개의 계단을 밟을 수 없다.3. 마지막 계단은 반드시 밟아야 한다. 이 세 조건을 만족시키며 답을 구하기 위해 다음과 같이 접근하였다.1. 계단의 개수가 각각 1, 2개일 때     계단의 점수를 더한 값을 출력한다. 2. 계단의 개수가 3개 이상일 때  1) dp 테이블을 계단의 개수만큼 0으로 초기화하여 만든다.  2) dp[0] = 첫 번째 계단의 점수 , dp[1] = 첫 번째 계단의 점수 + 두 번째 계단의 점수를 저장한다.  3) dp[..
[DB] 데이터 베이스 기초
·
기타
Database란여러 응용 프로그램 또는 사용자들이 공유, 이용할 수 있도록 통합하여 저장한 데이터의 집합   ● DBMS 데이터베이스를 관리하기 위해 필요한 기능을 제공하는 소프트웨어 ●  데이터베이스 스키마- 데이터베이스 구조, 데이터 타입, 제약 조건에 대한 명세- 데이터베이스 설계 단계에서 명시되며, 자주 변경되지 않음 ●  데이터베이스 인스턴스 특정 시점에 데이터베이스에 실제로 저장되어 있는 데이터  데이터 모델링 3단계 1. 개념적 모델링 - 업무 중심적이고 포괄적인 수준의 모델링- 추상화 수준이 가장 높음 - 업무의 핵심 엔터티(Entity)를 추출하는 단계   2. 논리적 모델링 - 데이터 정규화 수행 - 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계   3...
[MySQL] 명령어 모음 (기초)
·
기타
기능별 명령어 정리기능SQL 명령어설명데이터베이스 관리CREATE DATABASE database_name;새로운 데이터베이스 생성 DROP DATABASE database_name;데이터베이스 삭제 USE database_name;사용할 데이터베이스 선택테이블 관리CREATE TABLE table_name (column1 datatype constraint, ...);새로운 테이블 생성 DROP TABLE table_name;테이블 삭제 ALTER TABLE table_name ADD column_name datatype;테이블에 새로운 열 추가 ALTER TABLE table_name DROP COLUMN column_name;테이블의 특정 열 삭제 ALTER TABLE table_name MODIF..
백준 / 1931번 / 회의실 배정 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1931   처음 문제를 보자마자 알고리즘 강의 때 배운 Interval Schduling의 접근법이 생각났다. Earliest finish time을 기준으로 접근하여 가장 빨리 끝나는 것을 선택하면 최적의 답을 구할 수 있는 것이다.  이를 고려하여 입력 받은 회의 시간들을 끝나는 시간을 기준으로 오름차순 정렬하고 제출하였는데 실패하였다. 그 이유는 끝나는 시간이 동일한 회의들에 대한 처리를 해주지 않았기 때문이었다. 따라서 아래와 같이 1. 회의가 끝나는 시간 2. 회의 시작 시간  이렇게 우선 순위를 두어서  .sort(key = lambda x: x[1])이 아닌  .sort(key = lambda x: (x[1], x[0])) ..
[운영체제] 컴퓨터 시스템 계층 구조
·
CS/OS
컴퓨터 시스템이 계층 구조로 설계된 이유?-계층 간의 독립성 확보를 위해(추상화)  ‣ 사용자 : OS나 하드웨어에 대한 지식이 없어도 응용 프로그램으로 컴퓨터 활용 가능  ‣ 응용 프로그램 개발자 또는 응용 프로그램     : 장치 타입이나 구조, 제어 방법을 몰라도 개발 가능       컴퓨터 하드웨어가 바뀌어도 응용프로그램 다시 작성할 필요 없음‣ 운영체제       : 장치 관련된 모든 작업을 디바이스 드라이버에게 요청       응용프로그램과 하드웨어 사이 인터페이스 역할 사용자에 대한 운영체제의 역할- 사용자가 하드웨어에 관한 지식이 없어도 컴퓨터를 다루기 용이하게 함- 사용자에게 컴퓨터 시스템을 사용할 편리한 인터페이스 제공- 컴퓨터의 사용을 돕는 여러 도구 응용프로그램(유틸리티) 제공   ..
백준 / 14888번 / 연산자 끼워넣기 / python 파이썬 / 백트래킹
·
코딩테스트/백준 (python)
문제 :  https://www.acmicpc.net/problem/14888   코드N = int(input())nums = list(map(int, input().split()))op = list(map(int, input().split()))maxn = -1e9minn = 1e9def dfs(n, i, add, sub, mul, div): global maxn, minn if i == N: maxn = max(maxn, n) minn = min(minn, n) return else: if add: dfs(n + nums[i], i+1, add - 1, sub, mul, div) if sub: ..
백준 /1912번 / 연속합 / python 파이썬
·
코딩테스트/백준 (python)
문제 :  https://www.acmicpc.net/problem/1912 내 답안n = int(input())num = list(map(int, input().split()))dp = [0] * ndp[0] = num[0]for i in range(1, n): dp[i] = max(num[i], num[i] + dp[i-1])print(max(dp)) 다이나믹 프로그래밍(DP)으로 해결할 수 있는 문제이다. 현재 숫자를 포함해 앞에서부터 더해온 값과 현재 값을 비교했을 때, 현재 숫자가 크다면 앞에서 더해온 값은 총합을 키우는데 의미가 없다. 따라서 현재까지 더해온 값을 DP 테이블에 저장하고 현재 값과 비교해가면서 문제를 해결할 수 있다.