컴퓨터공학 & 정보통신84 [백준] 11052 카드 구매하기 c++ 문제 풀이 개요 대부분 풀이는 모두 DP 1차원 배열을 활용했습니다. 이 문제는 DP 2차원 배열을 통해서도 풀 수 있습니다. 로직 DP 테이블의 각 값은 i번까지의 카드를 조합해서 만들 수 있는 j개 카드 값들 중 최댓값 DP 테이블의 값을 채우는 과정에서 기존 최댓값에서 현재 카드를 추가할 수 있는 경우, 현재 카드를 추가한 경우와 기존 최댓값 사이의 대소 비교를 통해 최댓값이 결정됨을 확인할 수 있음 소스 코드 #include #include using namespace std; int DP[1001][1001]; int P[1001]; int main() { int N; cin >> N; for (int i = 1; i > P[i]; } /* 1 5 6 7 i j 1 2 3 4 개의 카드로 pn까지 활용해서.. 2023. 8. 26. [아키텍처] REST 아키텍처와 RESTful API에 대한 이해 개요RESTful API는 REST 아키텍처 스타일을 만족하는 API입니다.💡 참고API는 Application Programming Interface의 약자로 서로 다른 어플리케이션의 상호 통신을 위한 인터페이스입니다. 만약 API 에 대한 이해가 부족하다면 IBM 유튜브를 참고하세요. 초기 웹 아키텍처의 문제초기 웹 아키텍처에선 공통 서버-클라이언트 구현 라이브러리 CERN libwww에 의존했습니다. 이후 웹 생태계가 비대하게 성장하면서 이에 따른 새로운 하위 아키텍처에 대한 필요성이 대두되었습니다.기존 HTTP 프로토콜 및 기존 아키텍처와 공존할 수 있으며, 확장 가능한 아키텍처가 필요했습니다. REST (Representational State Transfer)로이 필딩은 REST 아키텍처.. 2023. 8. 11. [노트] 23-08-10 CS 대비 노트 개인적으로 메모한 CS 면접 관련 대비 노트 입니다. 알고리즘 분할정복 퀵소트 vs 머지소트 - (pivot, partition활용, 불안전 알고리즘) vs (동일한비율, 추가 메모리 할당) LCS(최장 부분 공통 수열) - DP를 활용하여 2차원 배열로 풀 수 있다. 네트워크 URI vs URL - 이름 vs 프로토콜 + 이름 HTTP 프로토콜 - 웹 데이터 교환의 기초이자 클라이언트-서버 프로토콜 소프트웨어 공학 RESTful API - REST 아키텍처 스타일 API Git merge vs rebase - 내부적으로 과정에 차이가 있는 브랜치 병합 관련 두 명령 코드스멜 - 프로그램 소스 코드에서 문제를 일으킬 가능성 있는 경우의 집합 (지나치게 긴 주석도 이에 포함된다) 핫스탠바이 - 동일한 서버.. 2023. 8. 10. [운영체제] 멀티 스레드(Multi-Thread)에 대한 이해 스레드 한 프로세스 내에서 실행되는 흐름의 단위입니다. 스레드 분류 스레드는 크게 두 가지로 나뉩니다. 사용자 수준 스레드 (ULT) : 스레드 라이브러리(ex, pthread)를 사용하므로 운영체제 구분 없이 적용 가능, 그러나 스레드의 시스템 호출 수행 시 해당 스레드를 포함한 프로세스 내 다른 모든 스레드 블록 -> 성능 상 이점 별로 커널 수준 스레드 (KLT) : 같은 프로세스 내 다른 스레드 사용 가능 -> 성능 상 이점 멀티 스레드 한 프로세스 내에서 단일 스레드가 아닌 2개 이상의 스레드를 사용하는 경우 이를 멀티 스레드로 부릅니다. 멀티 스레드는 일반적으로 성능 향상에 이점이 있습니다. 각 스레드는 각각의 다른 CPU를 활용할 수 있는데, 이런 특징은 CPU를 덜 놀게 합니다. 또한 새 .. 2023. 8. 10. [디자인패턴] 어댑터(Adapter) 패턴에 대한 이해 개요 어댑터 패턴은 존재하는 클래스의 인스턴스가 다른 인스턴스로 사용가능하도록 설계하는 디자인 패턴입니다. 한국 여행객이 일본에 와서 한국산 충전기 220v를 사용하기 위해 110v로 변환하는 젠더를 사용하는데, 이 때 어댑터의 역할이 젠더의 역할과 동일합니다. 주로 제 3자가 제공하는 프로그램의 일부를 자신의 프로그램에 적용하여 사용하고자 할 때, 어댑터 디자인 패턴을 활용할 수 있습니다. 구현 예를 들어 보겠습니다. 회사 A는 애플 주식을 사는 메소드를 가진 클래스를 아래와 같이 작성했습니다. interface stock { fun buy(stockName : String) } class appleStock: stock { override fun buy(stockName : String){ print.. 2023. 8. 9. [디자인패턴] 싱글톤(Singleton) 패턴에 대한 이해 개요 싱글톤 패턴은 클래스의 인스턴스화를 단일 인스턴스로 제한하는 소프트웨어 디자인 패턴입니다. '인스턴스'는 프로그래밍 언어마다 지칭하는 표현이 약간 다르지만 일반적으로 정의한 클래스를 현실화한(realized) 객체를 의미합니다. '인스턴스화'는 정의한 클래스 현실화를 의미합니다. 인스턴스화한 단일 인스턴스 하나를 계속 재사용하는 방식입니다. 주로 프로그램 전반에 전역으로 사용해야 하는 경우 싱글톤 패턴을 활용할 수 있습니다. 구현 코틀린에서는 object 키워드를 사용하여 싱글톤 패턴 클래스를 작성할 수 있습니다. object DataProviderManager { fun registerDataProvider(provider: DataProvider) { // ... } val allDataProv.. 2023. 8. 9. 이전 1 2 3 4 5 6 7 8 ··· 14 다음