분류 전체보기
-
[백준]1001. A - B (java, python)알고리즘/백준 2021. 4. 19. 14:18
📄 링크 A - B 💡 문제 분석 가장 기초 문제 입력 받고 빼기 후 출력 ⌨️ 코드 JAVA import java.util.Scanner; public class Q1001 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a - b); } } PYTHON a, b = map(int, input().split()) print(a - b)
-
[백준]1000. A + B (java, python)알고리즘/백준 2021. 4. 19. 14:15
📄 링크 A + B 💡 문제 분석 가장 기초 문제 입력 받고 더해서 출력합니다 ⌨️ 코드 JAVA import java.util.Scanner; public class Q1000 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); } } PYTHON a, b = map(int, input().split()) print(a + b)
-
기술 면접 - 운영체제 (4)기술 면접 2021. 4. 19. 03:18
가상 메모리 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음 폰 노이만 구조 기반이므로, 코드는 메모리에 반드시 있어야 함 가상 메모리 메모리가 실제 메모리보다 많아 보이게 하는 기술 프로세스 간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음 가상 메모리 아이디어 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고 쓸 때만 물리 주소로 바꿔주면 된다 Virtual Address : 프로세스가 참조하는 주소 Physical Address : 실제 메모리 주소 MMU(Memory Management Unit) CPU에 코드 실행 시, 가상 주소 메모리를 물리 주소 값으로 변환해주는 하드웨어 장치 CPU는 가상 메모리를 다루고, 실제 해당 ..
-
기술 면접 - 운영체제 (3)기술 면접 2021. 4. 19. 03:14
스레드 Light Weight Process 프로세스 프로세스 간에는 각 프로세스의 데이터 접근이 불가 ( IPC 사용 ) 스레드 하나의 프로세스에 여러 개의 스레드 생성 가능 스레드들은 동시에 실행 가능 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능 ( IPC 사용할 필요가 없다 ) Code 영역, Data 영역, Heap 영역은 다 같이 공유함 Stack 영역만 스레드마다 각각 유지 멀티 프로세싱과 스레드 멀티 태스킹과 멀티 프로세싱 멀티 태스킹 : 하나의 CPU가 여러 프로세스를 동시에 실행하도록 보이게 하는 기술 멀티 프로세싱 : 프로세스를 여러개의 CPU로 병렬 실행하여 CPU 속도를 높이는 것 멀티 프로세싱 원리 스레드를 여러개 만들면 가능!! 스레드 장점 사용자에 대한 응답성 ..
-
기술 면접 - 운영체제 (2)기술 면접 2021. 4. 19. 03:09
인터럽트 인터럽트란? CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 CPU에 알려서 처리하는 기술 어느 한 순간 CPU가 실행하는 명령은 하나, 다른 장치와 어떻게 커뮤니케이션을 할까? 인터럽트 필요 이유 선점형 스케쥴러 구현 프로세스 running 중 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체하기 위해, 현재 프로세스를 중단시킴 io Device와의 커뮤니케이션 저장매체에서 데이터 처리 완료 시, 프로세스를 깨워야 함(block state -> ready state) 예외 상황 핸들링 CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생할 경우 CPU가 해당 처리를 할 수 있도록 CPU에 알려줘야 ..
-
기술 면접 - 운영체제 (1)기술 면접 2021. 4. 19. 03:07
운영체제 구조 두 가지 모드 사용자 모드 : 응용 프로그램이 사용 커널 모드 : OS가 사용 시스템 콜은 커널 모드로 실행 커널 모드로 실행하려면, 반드시 시스템 콜을 거쳐야 함 시스템 콜은 운영체제가 제공 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함 프로세스 스케쥴링 배치 처리 시스템 자동으로 다음 응용 프로그램이 이어서 실행될 수 있도록 하는 시스템 FIFO - Queue를 사용 어떤 프로그램은 실행이 너무 오래 걸려서, 다른 프로그램이 실행하는데 시간을 많이 기다려야 한다 나는 MP3 음악을 들으면서, 문서 작성을 하고 싶음! 두 가지 프로그램을 동시에 실행할 수 없음 시분할 시스템 응용 프로그램이 CPU를 점유하는 시간을 잘게 쪼개어 실행될 수 있도록 하는 시스템 컴퓨터 응답 시간을 ..
-
[백준]17289. 오큰수 - Java알고리즘/백준 2021. 2. 19. 01:17
📄 링크 boj 17298. 오큰수 💡 문제 분석 N * N으로 모든 경우를 비교하면 시간 초과가 납니다 O(N) 방법 순서대로 스택에 숫자를 넣을 때, 스택에 숫자가 들어있다면 현재 넣을 숫자와 비교해 봅니다 만약 현재 넣을 숫자가 더 크다면, 스택에 있는 숫자들의 오큰수는 현재 넣을 숫자가 됩니다 마지막 숫자까지 스택에 넣었다면 모든 오큰수를 구한 것이 됩니다. ⌨️ 코드 public class _17298_오큰수 { static class Pair { int idx, n; Pair(int idx, int n) { this.idx = idx; this.n = n; } } public static void main(String[] args) throws IOException { BufferedReade..
-
[백준]1987. 알파벳 - Java알고리즘/백준 2021. 2. 19. 01:16
📄 링크 boj 1987. 알파벳 💡 문제 분석 모든 알파벳을 한 번씩만 지날 수 있기 때문에 , A ~ Z까지 26개의 알파벳을 체크하기 위해 불린 배열을 만듭니다 시작지점부터 dfs를 돌며 현재 칸에서 갈 수 있는 4방향 중 가장 큰 값이 답입니다 bfs를 사용하게 된다면 모든 경로를 탐색하지 않아서 실패하게 됩니다 ⌨️ 코드 public class _1987_알파벳 { static int r, c; static int[] dy = {-1, 0, 1, 0}, dx = {0, 1, 0, -1}; static char[][] s; static boolean[] chk; public static void main(String[] args) { Scanner sc = new Scanner(System.in)..