분류 전체보기
-
[백준]18119: 단어 암기 - JAVA문제풀이/백준 2021. 8. 10. 15:07
[백준]18119: 단어 암기 18119번: 단어 암기 준석이는 영어 단어를 외우려고 한다. 사전에는 N가지 단어가 적혀 있다. 모든 단어는 소문자이다. 단어 안에 있는 모든 알파벳을 알 때, 그 단어를 완전히 안다고 한다. 다음과 같은 쿼리들이 주 www.acmicpc.net 풀이 🪑 문제는 굉장히 간단하다. 각 쿼리마다 완전히 알고 있는 단어의 개수를 출력하는 문자열 문제이다! 📝 문제를 정리해 보쟈. 단어는 소문자로만 되어 있으며 단어 안에 모든 알파벳을 알면 그 단어를 안다고 한다. 각 쿼리 마다 완전히 알고 있는 단어의 개수를 출력한다. 모음은 완벽하게 외웠다. 잊어버릴 일이 없다. 🙋♀️ 처음에는 시간복잡도를 생각해 보았다. O(NM)으로 문자를 하나씩 확인하며 완탐으로 문제를 푼다고 했을때..
-
[WEB] Restful APICS/WEB 2021. 8. 9. 20:22
📝 Restful API 💻 REST(REpresentational State Transfer) ✔ HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식이다. ✔ Restful한 API가 되기 위해서는 REST의 특징을 갖추어야 한다. 🔧 REST의 특징 일관된 인터페이스: URI로 지정한 리소스에 대한 조작 요청은 클라이언트의 플랫폼에 무관하며, 특정 언어에 종속받지 않는다. 무상태성(Stateless): 이전 요청이 다음 요청과 연관되지 않는다. 캐시: 캐싱 기능을 적용할 수 있다. 자체 표현 구조: 요청 메시지만 보고도 이를 쉽게 이해할 수 있어야 한다. 클라이언트-서버 구조: REST서버는 API제공, 클라이언트는 자원 요청, 사..
-
[백준]20437: 문자열 게임 2 - JAVA문제풀이/백준 2021. 8. 9. 14:03
[백준]20437: 문자열 게임 2 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net 풀이 🪑 처음 보자마자 굉장히 쉬운 문제라고 생각 했었엇었섯다. 투포인터를 사용하여 구현했었다. 그런데 시간초과가 발생했고,, 아무리 생각해도 다른 방법이 떠오르질 않아 다른 분의 풀이를 참고하였다. 🙋♀️ 풀이를 보고 나니,,흠,, 뭔가 시간복잡도는 투포인터를 사용하는 방식과 큰 차이가 없어 보여서 더 의아해지긴 했다. 그래도 알파벳 별로 개수를 입력받는다 라는 큰 힌트를 얻어 다시 풀어 보았다! 📝 문제의 조건을 정리해..
-
[Software Engineering] AgileCS/Software Engineering 2021. 8. 8. 19:51
📝 Agile 💻 Software Development Life Cycle (SDLC) ✔ 소프트웨어 개발부터 폐기까지 전 과정을 하나의 생명주기로 정의하고 단계 별 공정을 체계화한 모델이다. 🔧 다음과 같은 생명주기 모델이 있다. 폭포수 모델 - 한 단계가 완전히 끝나야 다음 단계로 넘어간다. 프로토타입 모델 - 시제품을 만들어 최종 결과물을 예측한다. 나선형 모델 - 위험 분석 과정을 포함하며 여러번 개발 과정을 거쳐 점진적으로 누락, 추가되는 요구사항을 첨가한다. 애자일 모델 - 고객 중심적이며 고객 요구사항 변화에 유연히 대응한다. 💻 애자일 방법론 🔧 애자일 방법론의 특징 고객과 지속적으로 소통하여 변화하는 요구사항을 신속하게 수용한다. 고객의 의견을 가장 우선시 한다. 짧은 개발 주기를 반복한..
-
[Software Engineering] MSACS/Software Engineering 2021. 8. 8. 18:02
📝 MSA 💻 Monolithic ✔ MSA가 도입되기 전, 모든 기능을 하나의 어플리케이션에서 비즈니스 로직을 구성해 운영하는 Monolithic 방식으로 개발이 이루어 졌다. 🔧 Monolithic 장점 개발시 환경 설정에 있어 간단하다. 작은 사이즈의 프로젝트에서 유리하다 🔧 Monolithic 단점 빌드/테스트 시간이 증가한다 - 하나를 수정해도 시스템 전체를 빌드해야 하며 유지보수가 힘들다. 작은 문제가 시스템 전체에 영향을 미친다. 확장성에 불리하다 - 하나의 서비스 확장을 위해 전체 프로젝트를 확장해야 한다. 💻 MicroService Architecture ✔ 기능 별로 컴포넌트를 나누고 조합할 수 있도록 구축한다. 🔧 컴포넌트란? 재사용이 가능한 독립적인 단위모듈이다. 구현, 명세화, 패..
-
[JAVA] 함수형 프로그래밍CS/Java 2021. 8. 7. 18:31
📝 함수형 프로그래밍 💻 명령형 프로그래밍(절차지향, 객체지향) ✔ 어떻게 할지 표현한다. 알고리즘을 명시하고, 목표는 명시하지 않는다. 🔧 명령형 프로그래밍의 특징 어플리케이션의 상태가 공유되고, 객체의 메서드와 함께 배치된다. 상태와 상태를 변경시키는 관점에서 연산을 설명한다. 🔧 간단한 명령형 프로그램을 작성해 보자. with JAVA for(int i = 0; i < 10; i++) { System.out.println(list.get(i); } i를 출력하기 위한 로직은 명시되어 있지만, 위 로직이 출력만을 위한 로직이라고 할 수는 없다. 이 과정에서 i라는 변수에 대한 값이 변경된다. 💻 선언형 프로그래밍(함수형) ✔ 어떻게 보다는 무엇을 하는지 설명하는 방식이다. 알고리즘을 명시하지 않고 목..
-
[OS] 컴퓨터 구조CS/OS 2021. 8. 6. 19:00
📝 컴퓨터 구조 💻 하드웨어 ✔ 컴퓨터를 구성하는 기계적 장치 🔧 CPU 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다. 산술논리연산장치(ALU) + 제어장치 + 레지스터로 구성된다. 🔧 기억장치 프로그램, 데이터, 연산의 중간 결과를 저장한다. 주기억장치(RAM)과 보조기억장치(HDD, SSD)로 나누어 진다. 보조기억장치는 주기억장치에 비해 속도는 느리지만 자료를 영구적으로 보관할 수 있다. (비휘발성) 🔧 입출력장치 입력 장치는 컴퓨터 내부로 자료를 입력하는 키보드, 마우스 등에 해당된다. 출력 장치는 컴퓨터에서 외부로 표현하는 프린터, 모니터, 스피커 등에 해당된다. 🔧 시스템 버스 각각의 구성요소가 다른 구성요소로 데이터를 보낼 수 있는 통로이다. 데이터 버스: 중앙처..
-
[OS] 캐시 메모리CS/OS 2021. 8. 6. 17:52
📝 캐시 메모리 💻 캐시 메모리 ✔ 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 🔧 CPU가 주기억장치에서 저장된 데이터를 읽어올 때 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킨다. 속도는 빠르지만 비싸다는 단점이 있다. 🔧 작동 원리 시간 지역성: for, while같은 반복문에서 사용하는 조건 변수 처럼 한번 참조된 데이터는 잠시 후 다시 참조될 가능성이 높다. 공간 지역성: 배열과 같은 연속 접근 시 참조된 데이터 근처에 있는 데이터가 잠시 후 다시 참조될 가능성이 높다. 이러한 지역성을 최대한 활용하기 위해 해당 데이터 뿐만 아니라, 자주 사용될 주소의 데이터도 같이 가져..