분류 전체보기

TIL - 0215
1. 자바 플레이 그라운드 with TDD, 클린 코드 스트림 사용법 및 사용 이유 함수형 프로그래밍의 중요성 2. 혼자서 공부하는 컴퓨터 구조 + 운영체제 - 명령어 사이클 인출 사이클 : 메모리에서 명령어를 CPU로 가지고 오는 사이클 실행 사이클 : 가져온 명령어를 CPU에서 실행하는 사이클 간접 사이클 : 간접주소지정 방식 등 메모리를 한번 더 접근해야 할 때 사용하는 사이클 인터럽트 사이클 : 1. I/O에서 CPU로 인터럽트 요청신호를 보냄 인터럽트가 가능여부에 대한 확인 요청 2. CPU는 인터럽트 플래그를 통해 인터럽트 수용여부 확인 인터럽트가 가능한 상황인지 아닌지 판단하게 해주는 플래그 3. 가능 하다면 CPU는 현재까지의 작업을 메모리 스택에 백업 4. CPU는 인터럽트 벡터를 참조해..
백준 1541번 자바
문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 1. 접근 방식 문제 이해에 많이 헤맸다. 부호 '-' 부터 다음 '-'부호가 나오기 전까지 괄호를 치면 괄호안의 값들은 셈이 된 상태에서 음수로 변경 되기 때문에 가장 작은 값이 나올 수 있다. 그렇기 때문에 배열의 마지막부터 '-'를 탐색하면서 해당 값들을 빼주면 최소값이 나온다. 다만 마지막부터 탐색하기 때문에 앞쪽에 '+' 기호만 존재할 경우가 생기기 때문에 해당 값만 더해주면 ..
백준 1931번 자바☆
문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 1. 접근 방식 역시 그리디 관련 문제는 처음 접근이 가장 중요한것 같다.. 처음 접근을 회의 시작시간을 정렬하는 방법으로 했는데 결국 점점 산으로가 포기했다. 정답은 회의 종료시간 순으로 정렬을 시키고 종료시간이 같을 경우 시작시간 순으로 정렬을 해야한다. 해당 접근만 주의하면 크게 어렵지 않은 문제다. 2. 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..
백준 1456번 자바 ☆
문제 https://www.acmicpc.net/problem/1456 1456번: 거의 소수 어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다. 두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소수가 몇 개인지 출력한다. www.acmicpc.net 1. 접근 방식 에라토스테네스의 체를 이용해 소수를 구하고 해당 문제 조건에 맞는 값을 구하면 된다. 구현 자체는 어렵지 않았지만 A,B의 범위 값이 너무 크기때문에 long 타입으로도 못담는 숫자가 생긴다. 쉽게 예를 들자면 long의 최대 값이 100이고, B의 값이 81이라고 가정했을 때 소수 7의 3제곱은 343이므로 long의 범위를 넘기에 오버플로우가 발생한다. 엉뚱한 값이 생성되면서 조건을..
백준 1929번 자바
문제 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 1. 소수 구하기 특정 범위의 소수를 구하기 위해선 여러방법이 있겠지만 특히 자주 사용되는 방법이 '에라토스테네스의 체' 이다. 원리는 간단하다 첫번째 소수인 2부터 2의 배수를 삭제한다. 그 다음 삭제 되지 않은 수인 3의 배수를 삭제하고 그 다음부터는 마찬가지다. 상세한 설명 및 예시는 아래에 있다. https://terms.naver.com/entry.naver?docId=1179083&cid=40942&categor..
TIL - 0214
1. 자바 플레이 그라운드 with TDD, 클린코드 람다 사용법 람다 사용이유(간결,중복제거) 익명 클래스 활용 2. 혼자서 공부하는 컴퓨터 구조+운영체제 CPU의 작동원리(ALU, 제어장치, 레지스터) ALU(산술논리장치) : 제어장치로부터 제어신호(수행할 연산)를 전달받고, 레지스터로부터 데이터(피연산자)를 전달 받아 연산을 수행, 결과는 레지스터에 저장 후 메모리로 이동 제어장치 : 명령어 레지스터로부터 명령어를 전달 받아 해석하여 제어신호를 발생시킨다. CPU내부(ALU, 레지스터), CPU외부(메모리, I/O)와 제어버스를 이용해 제어신호를 주고 받는다. 레지스터 : 메모리에서 가져온 명령어, 데이터를 임시저장하기 위한 공간이고 ALU의 연산결과를 저장하기 위한 저장소. 프로그램 카운터의 값을..