전체 글 224

[TIL] 프로세스와 쓰레드

프로세스와 쓰레드 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위, 실행 중인 프로그램을 의미 쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위, 프로세스내에서 일하는 일꾼(코드실행의 흐름) OS가 프로그램 실행을 위한 프로세스를 할당해줄때 프로세스안에 프로그램 Code와 Data 그리고 메모리 영역(Stack, Heap)을 함께 할당해준다. 프로세스가 작업중인 프로그램에서 실행요청이 들어오면 쓰레드(일꾼)을 만들어 명령을 처리하도록 한다. 프로세스 안에는 여러 쓰레드(일꾼)들이 있고, 쓰레드들은 실행을 위한 프로세스 내 주소공간이나 메모리공간(Heap)을 공유받는다. 추가로, 쓰레드(일꾼)들은 각각 명령처리를 위한 자신만의 메모리공간(Stack)도 할당받는다. Java는 이와 같이 JV..

기타/개발일기 2024.01.04

[TIL] 예외처리, 제네릭

예외처리 확인된 예외처리 (Checked Exception) 컴파일 시점에 확인하는 예외. 반드시 예외 처리를 해줘야하는 예외. 미확인된 예외 (Unchecked Exception) 런타임 시점에 확인되는 예외. 예외 처리가 반드시 필요하지 않은 예외. 예외 정의 class OurBadException extends Exception { public OurBadException() { super("위험한 행동을 하면 예외처리를 꼭 해야합니다!"); } } super를 통해 Exception 클래스에 해당 문자열을 넘겨준다. throws throw 메서드 이름 뒤에 붙어 이 메서드가 어떠한 예외사항을 던질 수 있는지 알려주는 예약어. 메서드 안에서, 실제로 예외 객체를 던질 때 사용하는 예약어. 여러 종류..

기타/개발일기 2024.01.03

[TIL] 클래스, 상속, 인터페이스

누구나 아는 이야기는 글만 길어질 것 같아 생략하고 중요한 키워드나 내가 모르는 것을 정리해보고자 한다. 클래스 오버로딩 오버로딩은 하나의 메서드가 하나의 기능만을 하지 않고 다양한 기능을 가지는 것이다. 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변수의 개수 또는 타입, 순서가 다르면 동일한 이름을 사용해서 메서드를 정의할 수 있다. 조건 메서드의 이름이 같고, 매개변수의 개수, 타입, 순서가 달라야 한다. '응답 값만' 다른 것은 오버로딩을 할 수 없다. 접근 제어자만 다른 것도 오버로딩을 할 수 없다. 결론, 오버로딩은 매개변수의 차이로만 구현할 수 있다. 장점 메서드 이름 하나로 상황에 따른 동작을 개별로 정의할 수 있다. 메서드의 이름을 절약할 수 있다. 인..

기타/개발일기 2024.01.02

프로그래머스 python 다리를 지나는 트럭

[level 2] 다리를 지나는 트럭 - 42583 문제 링크 성능 요약 메모리: 10.3 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > 스택/큐 채점결과 정확성: 100.0 합계: 100.0 / 100.0 제출 일자 2023년 12월 5일 19:51:46 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, ..

[TIL] JVM과 기본 문법

오늘의 키워드 JVM 자바 기본 문법 JVM JVM은 `Java Virtual Machine`의 약자로 자바 가상 머신이다. 간단하게 JVM 동작을 이해할 수 있는 그림이다. 대충 이야기하자면 자바 컴파일러로 변환된 바이트 코드를 클래스 로더를 통해 메모리에 보내준다. 인터프리터는 바이트 코드를 가져와 기계어로 번역을 하고, JIT 컴파일러가 이를 보조하여 도와준다. 또 메모리에서 안쓰는 데이터를 처리해주는 Garbage Collector가 있다. 더 자세하게 JVM에 대해 공부할 수 있도록 글을 따로 정리해두었다. 2023.12.21 - [Language/Java] - JVM JVM JDK, JRE, JVM JDK, JRE, JVM에 대한 용어를 정리하자면 JDK : Java Development Ki..

기타/개발일기 2023.12.29

[백준 python 11659] 구간 합 구하기 4

[Silver III] 구간 합 구하기 4 - 11659 문제 링크 성능 요약 메모리: 41144 KB, 시간: 260 ms 분류 누적 합 제출 일자 2023년 12월 28일 21:24:56 문제 설명 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. import sys input = sys.stdin.readline n, m = map(int, input().sp..

프로그래머스 python 올바른 괄호

[level 2] 올바른 괄호 - 12909 문제 링크 성능 요약 메모리: 11.1 MB, 시간: 6.99 ms 구분 코딩테스트 연습 > 스택/큐 채점결과 정확성: 69.5 효율성: 30.5 합계: 100.0 / 100.0 제출 일자 2023년 12월 4일 16:51:10 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution..

프로그래머스 python 기능개발

[level 2] 기능개발 - 42586 문제 링크 성능 요약 메모리: 10.1 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > 스택/큐 채점결과 정확성: 100.0 합계: 100.0 / 100.0 제출 일자 2023년 12월 4일 15:58:35 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배..

프로그래머스 python 같은 숫자는 싫어

[level 1] 같은 숫자는 싫어 - 12906 문제 링크 성능 요약 메모리: 27.9 MB, 시간: 115.88 ms 구분 코딩테스트 연습 > 스택/큐 채점결과 정확성: 71.9 효율성: 28.1 합계: 100.0 / 100.0 제출 일자 2023년 12월 4일 14:22:4 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3,..

프로그래머스 python 의상

[level 2] 의상 - 42578 문제 링크 성능 요약 메모리: 10.3 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > 해시 채점결과 정확성: 100.0 합계: 100.0 / 100.0 제출 일자 2023년 12월 4일 13:43:26 문제 설명 코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스..