📕문제 수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, Ti ≤ Sj 일 경우 i 수업과 j 수업은 같이 들을 수 있다.) 수강신청 대충 한 게 찔리면, 선생님을 도와드리자! 📕입력 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) 📕출력 강의실의 개수를 출력하라. 🔎문제 해석 나는 처음에 pair 형태(수업 시작 시간, 수업 끝나는 시간)로 선언하고 , 수업 시작 시간을 기준으로 오름차순으로 정렬되게끔..
전체 글
안녕하세요 💻📕문제 BEER라는 단어를 이루는 알파벳들로 만들 수 있는 단어들을 사전 순으로 정렬하게 되면 BEER BERE BREE EBER EBRE EEBR EERB ERBE EREB RBEE REBE REEB 와 같이 된다. 이러한 순서에서 BEER 다음에 오는 단어는 BERE가 된다. 이와 같이 단어를 주면 그 단어를 이루는 알파벳들로 만들 수 있는 단어들을 사전 순으로 정렬할 때에 주어진 단어 다음에 나오는 단어를 찾는 프로그램을 작성하시오. 📕입력 입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 하나의 단어가 한 줄로 주어진다. 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이 없는 연속된 알파벳으로 이루어진다. 단어의 길이는 100을 넘지 않는다. ..
이 글은 강의자료를 해석한 것으로 정확하지 않을 수 있습니다!! 📕SRAM VS DRAM SRAM [static random access memory] cache memory를 구성함. DRAM보다 빠르고, 덜 공간을 차지하면서 더 비싸다. DRAM [dynamic random access memory] memory를 구성함. SRAM과 DRAM은 메모리 계층의 two layers이다. 📕Volatile memory 전원이 꺼지면 instruction과 data를 잃어버림. Main memory or primary memory 보통 크기가 작고 빠르다. e.g.)DRAM and SRAM 📕Nonvolatile memory 전원이 꺼져도 프로그램과 데이터가 유지됨. 보조기억장치 크기가 크고 메인메모리보다 ..
📕문제 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들어, 문자열 ABRACADABRA의 부분 문자열은 ABRA, RAC, D, ACADABRA, ABRACADABRA, 빈 문자열 등이다. 하지만, ABRC, RAA, BA, K는 부분 문자열이 아니다. 두 문자열 ABRACADABRA와 ECADADABRBCRDARA 의 공통 부분공통부분 문자열은 CA, CADA, ADABR, 빈 문자열 등이 있다. 이 중에서 가장 긴 공통부분 문자열은 ADABR이며, 길이는 5이다. 또, 두 문자열이 UPWJCIRUCAXIIRGL와 SBQNYBSBZDFNEV인 경우에는 가장..
📕문제 회문(回文) 또는 팰린드롬(palindrome)은 앞 뒤 방향으로 볼 때 같은 순서의 문자로 구성된 문자열을 말한다. 예를 들어 ‘abba’ ‘kayak’, ‘reviver’, ‘madam’은 모두 회문이다. 만일 그 자체는 회문이 아니지만 한 문자를 삭제하여 회문으로 만들 수 있는 문자열이라면 우리는 이런 문자열을 “유사회문”(pseudo palindrome)이라고 부른다. 예를 들어 ‘summuus’는 5번째나 혹은 6번째 문자 ‘u’를 제거하여 ‘summus’인 회문이 되므로 유사회문이다. 여러분은 제시된 문자열을 분석하여 그것이 그 자체로 회문인지, 또는 한 문자를 삭제하면 회문이 되는 “유사회문”인지, 아니면 회문이나 유사회문도 아닌 일반 문자열인지를 판단해야 한다. 만일 문자열 그 자체..
📕안드로이드의 4대 구성요소 각 구성요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점이며, 다른 구성 요소에 종속되는 구성 요소도 있습니다. 각 유형은 뚜렷한 목적을 수행하고 각자 나름의 수명 주기가 있어 구성 요소의 생성 및 소멸 방식을 정의합니다. 💡Activites 사용자가 앱과 상호작용하기 위한 진입점 역할을 한다. UI를 포함한 화면 하나를 나타냄. 액티비티 간의 전환은 intent를 사용해서 전환한다. intent를 사용해서 외부 앱과도 연동이 가능하다. 💡Services 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점. 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행. UI를 제공하지 않음. 사용자와 액티비티 간의 상호작용을 차단하지 않고, 네트워클 르 통해서..
📕Classes of Computers 💻Personal Computers (PCs) 소프트 웨어의 다양성과 일반적인 목적으로 사용되는 컴퓨터 비용과 성능을 절충시킨 컴퓨터 예) desktop, laptop 💻Servers - [껐다 키는 기계가 아님] 네트워크를 통해서 보통 접근할 수 있다. 높은 공간차지, 성능, 신뢰성을 가진다. 소규모 서버에서 건물만 한 사이즈까지 다양한 크기를 범위로 한다. Low-end : 웹 서비스 혹은 작은 사업에서 사용된다. High-end : 슈퍼컴퓨터 혹은 데이터센터 (굉장히 많은 메모리와 프로세서, 저장공간을 가짐) 💻Embedded computers 시스템 내부에 탑재된 컴퓨터 즉 특정한 목적을 가지고 사용되는 컴퓨터. 일반 컴퓨터와 다르게 더 절제된 환경과 전력소..
👀결과물 계산 기록을 저장하는 기능은 DB와 관련 있다. 안드로이드 스튜디오에서는 DB를 Room 라이브러리를 사용해서 이용한다. Room에 대한 설명은 이전 포스팅을 보면 알 수 있다. 계산 기록을 보여주는 기능은 시계 모양의 버튼을 누르면 계산 기록을 포함하고 있는 레이아웃이 나타나게 했다. 💻계산기록을 나타내는 Layout 닫기 버튼과 계산 기록 삭제 버튼과 계산 기록을 보여줄 수 있는 화면은 Scrollview를 사용해서 계산 기록이 많더라도 모두 표현할 수 있게했다. 💡우선 Room을 사용하기 위해서는 3가지 구성요소를 만들어줘야 한다. 데이터베이스 클래스 데이터 항목 Dao 📕Dao package com.example.calculator.Dao import androidx.room.Dao im..
저번에 혼자서 만들던 계산기가 DB를 연동해서 계산 기록을 저장하려고 했는데 굉장히 많은 오류가 생겨서 새로 갈아 엎고 구글링을 하면서 코딩을 했다. 너무 슬펐다. 계산기의 디자인은 이렇다.[항상 느끼는 건데 디자인도 진짜 어려운 영역이다. ] 각 버튼의 기능은 계산기를 한 번이라도 써본 사람은 알 거라고 믿고 있기에 설명을 생략한다. 초기 디자인이다. View를 사용해서 1대1로 화면을 나눴다. app:layout_constraintVertical_weight="num" // num:1으로 화면을 나누는 코드이다. 두 개의 textview를 만들어서 각각 input_text와 result_text를 입력받게끔 만들었다. 💻TableLayout 계산기 같이 같은 간격으로 같은 크기의 버튼을 넣어줄 때는 ..