본문 바로가기

분류 전체보기151

[운영체제] 명령어의 구조 보호되어 있는 글 입니다. 2023. 3. 23.
[백준] (Swift) 1157번: 단어 공부 📌 문제 1157번: 단어 공부 📌 풀이 1: [Character: Int] 형태의 딕셔너리 딕셔너리를 이용해 주어진 문자열의 인덱스를 지날 때마다, 해당 값의 알파벳을 딕셔너리의 값에서 1을 더하는 식으로 문제를 풀었다. 📌 코드 // 입력 받은 문자열을 input에 할당 let input = readLine()! // 함수에 input을 대입하여 출력 print(findWordOfMaxFrequency(input)) // 주어진 단어에서 가장 많이 사용된 알파벳을 대문자로 출력하는 함수 정의 func findWordOfMaxFrequency(_ word: String) -> Character { var charFrequency: [Character: Int] = [:] var maxCharFreque.. 2023. 3. 22.
[백준] (Swift) 3613번: Java vs C++ 📌 문제 3613번: Java vs C++ 📌 풀이 개요 이 문제의 핵심은 Java 형식(Camel case)과 Cpp 형식(Snake case)의 특징을 확인하여 이를 서로 변환하는 것이다. 각 형식의 예외 조건을 찾아 해당 형식에 부합한지를 판별해야 한다. 변수명의 이름이 바뀔 때마다 Java 형식은 대문자가 되고, Cpp 형식은 밑줄('_')이 따라 붙는다. 여기에 맞지 않는 것은 예외 처리로 판별한다. 📌 풀이 1. Java 형식이 아닐 때 첫글자가 대문자일 경우 밑줄이 하나라도 있을 경우 2. Cpp 형식이 아닐 때 양끝에 밑줄이 있을 경우 밑줄이 2개 이상 붙어 있을 경우 대문자가 하나라도 있을 경우 이제 위의 형식을 판별했다면 서로 다른 형식으로 변환하면 된다. 3. Cpp에서 Java로 변.. 2023. 3. 21.
[운영체제] 프로세서(CPU)의 구성과 메모리 계층 구조 저번 시간에는 추상적인 운영체제의 개념에 대해 알아 보았다면, 이번에는 보다 자세한 프로세서의 구성과 메모리 계층 구조를 알아 보자. 📌 프로세서(CPU)의 구성 (주의) 아래의 테이블에 언급하는 메모리는 레지스터(메모리 유닛)가 아닌 주 기억 장치(RAM)를 의미한다. 이름 역할 📌 제어 장치(Control Unit, CU) 레지스터와 연산 장치를 제어 📌 레지스터(Registers or Memory Unit) 주소나 명령어를 보관 프로그램 카운터(Program Counter, PC) 다음에 실행할 명령어의 주소를 보관 명령어 레지스터(Instruction Register, IR) 현재 실행 중인 명령어를 보관 메모리 주소 레지스터(Memory Address Register, MAR) 현재 실행 중인 .. 2023. 3. 20.
운영체제의 정의와 폰 노이만 구조 최신의 ooo OS를 업데이트 하세요. oo OS xx.x.을(를) 사용자의 ooo에서 사용 할 수 있으며... 일상 생활에서 스마트 기기(PC, 스마트폰 등)를 접하면 흔히 접할 수 있는 알림이다. 많이 접하는 단어면서도 설명을 하라고 하면 쉽지 않은 운영체제(OS)는 과연 무엇일까? 📌 운영체제의 정의 An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs. 운영체제(operating system)는 컴퓨터의 하드웨어와 소프트웨어의 자원을 관리하고 컴퓨터 프로그램을 위한 일반적인 서비스를 제.. 2023. 3. 19.
운영체제 OT (feat. 참고 자료) 목차 머리말 운영체제 공부의 첫 걸음! 사실 첫 걸음은 아니고 저번 학기에 운영체제 강의를 들었다. 하지만 매주 나가는 진도를 제대로 따라가지 못해 너무 아쉬웠다. 그래서 나의 페이스에 맞게 교재와 강의를 통해 운영체제를 제대로 공부하여 블로그에 정리해 보기로 했다. 교재 및 강의 1. 교재 교재는 크게 영문과 한글 원서 2권을 참고했다. 1-1. Silbershatz, Abraham, Peter B. Galvin, and Greg Gagne. Operating System Concepts. 10th ed., New Jersery: Wiley, 2018. Operating System Concepts - 10th edition 운영체제 과목의 '교과서' 역할을 하고 흔히 '공룡책'이라 부르는 교재를 참고.. 2023. 3. 19.
[Swift] stride()로 숫자를 단계적으로 다루기 Swift로 팩토리얼 문제를 반복적으로(iteratively) 풀어 보면서 stride() 메서드를 알게 되었다. 이를 보다 더 자세히 알고 싶어서 포스팅을 했다. [백준] (Swift) 10872번: 팩토리얼 (재귀 vs 반복) 📌 문제 10872번: 팩토리얼 📌 풀이 개요 N에서 1까지 차례로 곱하는 팩토리얼은 크게 2가지 경우로 풀어 볼 수 있다. 재귀적으로(recursively) 푸는 방식이거나, 반복적으로(iteratively) 푸는 방식이다. andy-archive.tistory.com 📌 공식 문서 링크 stride(from:to:by:) | Apple Developer Documentation stride(from:to:through:) | Apple Developer Documentati.. 2023. 3. 18.
[백준] (Swift) 10872번: 팩토리얼 (재귀 vs 반복) 📌 문제 10872번: 팩토리얼 📌 풀이 개요 N에서 1까지 차례로 곱하는 팩토리얼은 크게 2가지 경우로 풀어 볼 수 있다. 재귀적으로(recursively) 푸는 방식이거나, 반복적으로(iteratively) 푸는 방식이다. 📌 풀이 1: 재귀함수 재귀에 대한 개념은 아래의 링크 페이지에 정리해 두었다. [알고리즘] 재귀(Recursion)와 콜 스택(Call Stack) 알고리즘 이론에서 기본이며, 분할 정복이나 백트래킹 같은 여러 알고리즘의 기반을 맡고 있는 재귀(recursion)는 무엇일까? 이에 대해 자세히 알아 보자. 인형 안에, 조금 더 작지만 모양이 같은 andy-archive.tistory.com 재귀함수로 푸는 방식은 아래와 같다. 팩토리얼에 대한 함수를 정의해야 한다. → $\mat.. 2023. 3. 18.
[백준] (Swift) 10769번: 행복한지 슬픈지 📌 문제 10769번: 행복한지 슬픈지 📌 풀이 주어진 입력을 배열로 변환한다. 배열에서 단어를 검사할 때 인덱스의 범위를 초과하면 안되므로, 1번 이전에 문자열에서 임의의 문자 2개를 추가한다. 배열의 인덱스를 접근하면서 행복한 이모티콘과 슬픈 이모티콘의 개수를 계산한다. 행복한 이모티콘과 슬픈 이모티콘의 개수를 비교하여 출력의 조건문에 따라 화면 출력한다. 📌 코드 // 행복한 얼굴과 슬픈 얼굴에 대한 개수를 변수로 할당 var happyStringCount = 0 var sadStringCount = 0 // 주어진 입력을 input에 문자열로 할당 var input = readLine()! // 인덱스 초과를 막기 위해 임의의 두 문자를 맨뒤에 추가 input += ".." // 문자열을 배열로 .. 2023. 3. 18.
[백준] (Swift) 10818번: 최소, 최대 📌 문제 10818번: 최소, 최대 📌 풀이 함수 readLine()를 통해 한 줄로 된 하나의 문자열로 두 번 입력 받는다. N은 Int로 변환한다. inputToArrayOfInt는 split()과 map{}을 통하여, (1) 공백으로 구분한 N개의 정수를 나누어, (2) Int의 요소로 하나의 배열에 각각 추가한다. Int(), readLine()은 옵셔널 타입이기에, 강제 언래핑으로 옵셔널을 해제한다. min(), max()로 각각 최솟값, 최댓값을 구하되, 이 역시 2번처럼 옵셔널 타입이기에 강제 언래핑을 한다. 최솟값, 최댓값을 화면 출력한다. Swift에서 readLine()에 대한 내용은 따로 블로그를 작성했으니 아래를 참고하자. [Swift] 백준에서 readLine() 메서드로 입력 받.. 2023. 3. 17.
반응형