TIL💡(277)
-
[OS] DMA(Direct Memory Access)이란?
직접 메모리 접근(DMA, Direct Memory Access)은 특정 하드웨어 하위 시스템이 CPU와 독립적으로 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템의 기능이다. 과거 운영체제는 폴링 방식을 사용했기 때문에 CPU가 메모리나 주변 장치에 대한 모든 권한을 가지고 있었다. 그러나 효율성을 높이기 위해 인터럽트 방식을 사용하면서 입출력 관리자가 데이터의 입출력을 맡게 되었다. 입출력이 필요할 때 CPU는 입출력 관리자에게 입출력 요청을 보내고 자신은 하던 일을 계속한다. → 효율적 명령을 받은 입출력 관리자는 CPU가 요청한 데이터를 메모리에 가져다놓아야 하는데 이때 문제가 있다. 메모리는 CPU만 접근 권한을 가진 작업 공간이라 입출력 관리자는 접근이 불가하다는 것이다. 따라서 입..
2022.10.10 -
[알고리즘] 정렬 알고리즘 정리
최근에 카카오, 라인 CS 필기 테스트를 보면서 기초 CS를 많이 까먹었음을 깨달았다.. 퀵 정렬만 공부하고 갔다가, 다른 정렬들도 무수히 물어봐서 식은땀을 좀 흘렸다..;;;;;;; 기껏 어려운 1차 코딩테스트 다 붙었는데, CS 때문에 다 떨어지게 생겼다. 지금.. 그래서 정렬 알고리즘부터 다시 정리해보기로! 했다. 정렬 알고리즘은 컴퓨터 공학에서 매우 중요한 문제 중 하나이다. 그리고 자주 써야 한다. 뭐 물론 라이브러리 호출해서 자주 쓰긴 하지만, 내부 구조를 이해해야 상황에 따라 적절하게 사용할 수 있다. 이번 포스트에서 살펴볼 정렬 알고리즘은 버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬이다. 💡 버블 정렬(Bubble Sort) 버블 정렬은 거의 모든 상황에서 최악의 성능을 보여..
2022.10.10 -
[백준] 14891번: 톱니바퀴
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 이번에도 구현(시뮬레이션) 어게인.. 생각보다 구현 속도는 뚝딱뚝딱 빨라지고 있다. 그런데 눈이 이상한지, != 라고 써야하는 부분을 == 라고 쓰지 않나, second라고 써야하는 부분을 first라고 쓴 부분도 있었다..;;; 이런 경우 뭐 어쩔 수 없이 천천히 코드 한 줄씩 찍어보며 파악하는 수밖에 없다.. 이번 문제는 어제 푼 주사위 문제와 유사하다. 대신 주사위에서는 주사위 면들의 ..
2022.10.10 -
[백준] 14503번: 로봇 청소기
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 주어진 문제 그대로 구현하면 나름 쉽게 풀 수 있는 문제이다. 대신 문제 이해가 살짝 까다롭다. 로봇 청소기는 기본적으로 (현재의 방향에서) 왼쪽 방향(시계 반대 방향)으로 돌아간다. 여기서 관건은 어떻게 로봇 청소기를 회전시킬 것인가? 이다. 문제에서는 0 - 북쪽 1 - 동쪽 2 - 남쪽 3 - 서쪽 이라는 설정을 안내했다. 그리고 왼쪽방향으로 돌아가는 순서는 동쪽 → 남쪽 → 서쪽 → 북쪽..
2022.10.10 -
[백준] 14499번: 주사위
https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 지금까지 풀었던 문제와 완전히 다른 유형이다..어려운 구현 그 자체이다. 우선 주사위 굴러가는 걸 어떻게 구현할 것인가가 관건이다. 이 때 잘 생각해보면 주사위를 공중에 띄워놓고 면들만 굴려서 바꿔치기 한다고 생각하면 문제가 간단해진다. 그래서 크게 남북/ 동서로 회전 방향을 2가지로 나뉘어 놓는다. 그리고 면들을 각 방향에 맞춰 ..
2022.10.10 -
[삼성전자] SW 역량테스트 준비
https://garden1500.tistory.com/8 삼성그룹 공채 SW역량테스트 관련해서 꼭 알고 가실점 안녕하세요. 오픈 채팅방에서 삼성SW역량테스트에 대해서 많이 어쭤보셔서 이렇게 글을 정리합니다. 그리고 쩜튜브 삼성전자 코딩테스트 코로나 버전 "리얼" 후기 영상 추천드립니다. www.youtube.c garden1500.tistory.com https://www.youtube.com/watch?v=dW7b2lhplac v 필요한 설정 https://blog.encrypted.gg/879 삼성역량테스트 A형 Cheat Sheet 미리 만들었어야하는데 8ㅅ8.... 엄청 어려운 내용이 있는건 아니지만 시험 직전에 보면 마음의 안정에 조금이나마 보탬이 될 수 있지 않을까 싶습니다. 시험 잘 치세요..
2022.10.09