본문 바로가기

분류 전체보기

(7)
[백준 11066번] 파일 합치기 (JAVA) 주의해야 하는 부분 1) 소설의 각 챕터이므로 무조건 인접한 것끼리 묶어야 한다. "이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 소설의 여러 장들이 연속이 되도록 파일을 합쳐나가고," (문제 본문 두 번째 줄) 2) 규칙상 마지막 연산은 전체합을 더해야 한다. "최종적으로는 하나의 파일로 합친다." (문제 본문 세 번째 줄) 이전 단계들의 연산 과정에 상관없이 최종적으로 파일을 합치기 전 발생되는 cost는 전체 파일의 cost합과 동일하다. Ex) 1번 예제에서 40, 30, 30, 50 순서대로 파일이 있을 때 전체 비용 계산은 60 + 90 + 150 으로 계산되는데, 마지막 150이라는 값의 경우 60짜리 서브파일과 90짜리 서브파일을 더한 값이기도 하지만, 파일을 합치기 위한 마지막 연산..
[LeetCode] 변경된 UI에 따른 LeetHub 미동작 해결방법 개요 하루에 한 문제씩 LeetCode 문제를 풀면서 Git에도 잔디를 심으려고 하는데, commit과 push가 귀찮을 때가 있습니다. 이럴땐 편히 Git에 올려주는 크롬 확장 프로그램이 있어 사용하고자 합니다. 참고 : https://earth-95.tistory.com/88 확장 프로그램을 설치하고 LeetHub 연동한 이후에 문제를 풀면 아래와 같이 자동으로 커밋하여 기록을 남겨줍니다. 하지만 LeetCode UI 가 변경됨에 따라 다른 조치가 필요하게 되었습니다. 다른 블로그들에서는 이전 UI로 변경해서 사용하는 방법도 소개하지만 저는 다른 방법을 소개하고자 합니다. 해결 방법 다른 사용자분이 수정해서 푸시해놓은 브랜치를 가져다 쓰는 것으로 임시 조치하는 방법입니다. 1. 터미널에서 아래 명령어..
[Gradle] implementation, api, compile의 차이 (feat. dependencies 종속성) 📝 기록하게 된 배경 implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1" api 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' 네트워크 모듈 설계 중 retrofit을 적용하기 위해 build.gradle 파일에서 dependencies 블록에 라이브러리 종속성을 선언하였습니다. 선언 방식에는 api와 implementation이 있는데, 둘 중에서 implementation을 사용하는 이유가 궁금해졌습니다. (+ 찾아보니 compile 방식도 있어 같이 알아보고자 합니다.) Gradle은 a..
[Java] BufferedReader사용법 (feat. 알고리즘) 기본 개념 Scanner : 입력을 받을 시, 공백(space)이나 Enter를 모두 경계로 인식함 nextInt(), next(), nextchar() 등 다양한 형식의 데이터 입력가능 BufferedReader : Enter만 경계로 인식함, String으로만 데이터 인식 장점 : 알고리즘의 시간을 줄일 수 있다. case별 BufferedReader 사용 방법 1. 공백을 포함하지 않는 Int형 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); int n = Integer.parseInt(br.readLine()); BufferedReader를 통한 선언 -> readLi..
[OS] 프로세서(Processor)와 프로세스(Process)의 차이점 1. 프로세서(Processor)란? 중앙 처리 장치를 의미하며, 컴퓨터에 들어가는 부품 중 하나인 CPU가 프로세서입니다. 프로세서는 하드웨어에만 사용되는 용어는 아닙니다. SW적으로 의미를 가지며 프로세서라고 불리는 프로그램들도 있습니다. 하드웨어적 측면 - 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛 - 중앙처리장치(CPU)를 의미하며, 적어도 하나 이상의 ALU와 레지스터를 내장한 것 ex) CPU, Microprocessor 소프트웨어적 측면 - 데이터 포맷을 변환하는 역할을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)을 의미 - 출력 가능한 인쇄물을 생성하는 워드프로세서도 프로세서라 부름 ex) 워드 프로세서, 컴파일러, 어셈블러 결론 : CPU나 Microprocessor라는 하..
[OS] Semaphore란? (Feat.상호배제 방법 - 뮤텍스(Mutex)와 모니터(Monitor)까지) - 1편 세마포어(Semaphore)란? 멀티 프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 공유된 자원의 데이터 혹은 임계구역(Critical Section) 등에 여러 Process 혹은 Thread가 동시에 접근하면서 발생될 수 있는 문제를 방지하기 위하여 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 두는 방법입니다. 이를 위해 사용하고 있는 스레드나 프로세스의 수를 공통으로 관리하는 하나의 값(공유변수)을 이용해 상호 배제를 달성할 수 있도록 합니다. 상호 배제(Mutual Exclusion)란? 멀티 프로그래밍에서 공유 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘 임계 구역으로 불리는 코드 영역에 의해 구현된다. = 하나의 프로세스가 공유 자원을 사용할 때 다른 프로세스..
[OS] 멀티 프로그래밍, 멀티 태스킹, 멀티 스레딩, 멀티 프로세싱 멀티 프로그래밍 (Multi-programming)이란? 하나의 프로세서에 대하여 다수의 프로세스를 메모리에 동시에 적재하여 시간을 쪼개 작업을 처리하는 것 여러 프로그램을 메모리에 동시에 올려서 수행하는 것을 의미함 = 메모리에 다수의 프로세스가 동시에 올라가(keep)있는 것 단일 프로세서 상에서 여러개의 프로그램이 동시에 실행되는 것 프로세서가 입출력 작업의 종료를 대기할 동안 동일한 하나의 프로세서에서 다른 프로그램을 수행할 수 있도록 하는 것 특정 프로세서가 프로세스 A를 처리할 때, 다른 프로세스 B,C 등을 처리하게 만드는 것을 말한다. 특징 멀티 프로그래밍을 통해 프로세서를 효율적으로 사용할 수 있다 프로세서와 프로세스의 차이란? https://url.kr/fgu5c6 [OS] 프로세서(P..