분류 전체보기
-
💡YAPP 지원동기 5월부터 시작했던 공모전 프로젝트가 어느정도 끝난 시점이였다. 공모전을 포함하여 이전 프로젝트들에서 느낀 바는 같은 과의 사람들과 프로젝트를 진행하다보니 기획자의 역할도, 디자이너의 역할도, 개발자의 역할도 모두 맡아서 하여 체계적으로 역할을 나눌 수 없었다는 점이다. 물론 모든 프로젝트에서 개발자라고 개발자의 역할만 하는 것은 아니고 다양한 역할을 해보면서 경험이 된 것들도 있었지만, 앱을 기획할때 디자인의 한계를 가장 많이 부딪혀 힘들었던 것 같다. YAPP은 pm, 디자이너, 개발자가 한 팀이 되어 한 프로젝트를 개발해 나간다는 점이 가장 하고 싶게 만들었던 것 같다. 또한 직장인 분들도 같이 참여할 수 있어 그분들에게 실무 경험도 듣고 배워가고 싶었다 :) ✏️ YAPP 서류 ..
YAPP 23기 안드로이드 지원 후기 (+최종 합격)💡YAPP 지원동기 5월부터 시작했던 공모전 프로젝트가 어느정도 끝난 시점이였다. 공모전을 포함하여 이전 프로젝트들에서 느낀 바는 같은 과의 사람들과 프로젝트를 진행하다보니 기획자의 역할도, 디자이너의 역할도, 개발자의 역할도 모두 맡아서 하여 체계적으로 역할을 나눌 수 없었다는 점이다. 물론 모든 프로젝트에서 개발자라고 개발자의 역할만 하는 것은 아니고 다양한 역할을 해보면서 경험이 된 것들도 있었지만, 앱을 기획할때 디자인의 한계를 가장 많이 부딪혀 힘들었던 것 같다. YAPP은 pm, 디자이너, 개발자가 한 팀이 되어 한 프로젝트를 개발해 나간다는 점이 가장 하고 싶게 만들었던 것 같다. 또한 직장인 분들도 같이 참여할 수 있어 그분들에게 실무 경험도 듣고 배워가고 싶었다 :) ✏️ YAPP 서류 ..
2023.10.18 -
CPU Scheduling = ready 상태의 프로세스 중에서 어떤 프로세스에게 cpu를 줄지 결정 - cpu burst : 프로세스가 CPU를 사용하여 실행되는 시간을 의미합니다. - I/O burst : 프로세스가 I/O 작업을 수행하는 동안 CPU를 사용하지 않는 시간을 의미합니다. 스케줄링이 필요한 경우 1. IO 요청하는 시스템 콜 2. 할당 시간 만료 time interrupt 3. IO 요청 완료 후 인터럽트 4. 프로세스 종료돼서 다음 프로세스로 넘김 *preemptive : 강제로 빼앗음 (선점형) *nonpreemptive : 강제로 빼앗지 않음 (비선점형) dispatcher cpu의 제어권을 스케줄러에 의해 선택된 프로세스에게 넘긴다.(context switch) Schedulin..
[OS] CPU SchedulingCPU Scheduling = ready 상태의 프로세스 중에서 어떤 프로세스에게 cpu를 줄지 결정 - cpu burst : 프로세스가 CPU를 사용하여 실행되는 시간을 의미합니다. - I/O burst : 프로세스가 I/O 작업을 수행하는 동안 CPU를 사용하지 않는 시간을 의미합니다. 스케줄링이 필요한 경우 1. IO 요청하는 시스템 콜 2. 할당 시간 만료 time interrupt 3. IO 요청 완료 후 인터럽트 4. 프로세스 종료돼서 다음 프로세스로 넘김 *preemptive : 강제로 빼앗음 (선점형) *nonpreemptive : 강제로 빼앗지 않음 (비선점형) dispatcher cpu의 제어권을 스케줄러에 의해 선택된 프로세스에게 넘긴다.(context switch) Schedulin..
2023.10.13 -
💡문제 💁🏻♀️How to Solve 처음에 풀었던 방법은 시간초과가 났다.. 시간복잡도를 다시 생각해보니 내가 짠 로직은 O(n^2)가 발생하여 시간초과가 난다. import java.io.BufferedReader import java.io.InputStreamReader import java.util.Stack fun main() = with(BufferedReader(InputStreamReader(System.`in`))){ val input = readLine().toInt() val st = readLine().split(" ") val stack = Stack() val sb = StringBuffer() for (i in st){ stack.add(i.toInt()) } repeat(i..
[백준 문제풀기] #2493번 - 탑 with Kotlin💡문제 💁🏻♀️How to Solve 처음에 풀었던 방법은 시간초과가 났다.. 시간복잡도를 다시 생각해보니 내가 짠 로직은 O(n^2)가 발생하여 시간초과가 난다. import java.io.BufferedReader import java.io.InputStreamReader import java.util.Stack fun main() = with(BufferedReader(InputStreamReader(System.`in`))){ val input = readLine().toInt() val st = readLine().split(" ") val stack = Stack() val sb = StringBuffer() for (i in st){ stack.add(i.toInt()) } repeat(i..
2023.10.13 -
💡스택(Stack) 데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(FILO)방식 즉, 마지막으로 넣었던 값이 가장 먼저 뽑히는 구조 탑 : 가장 나중에 추가된 항목의 위치 베이스: 남아 있는 항목 중에서 가장 먼저 추가된 항목의 위치 스택의 장단점 - 장점 구조가 단순해서 구현이 쉽다. 데이터의 삽입과 삭제가 빠르다. - 단점 맨 위의 원소만 접근 가능하다. 탐색을 하려면 원소를 하나하나 꺼내서 옮겨가면서 해야한다. O(n) ✌🏻 스택의 주요 메소드 스택에는 자주 사용되는 메소드 (method)가 존재한다. add, push 스택에 값을 넣기 위해서는 add 또는 push를 사용하기도 한다. 두 함수는 모두 스택에 값을 넣을 때 사용하며, 새로 넣은 값은 가장 마지막..
[알고리즘] 스택이란?💡스택(Stack) 데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(FILO)방식 즉, 마지막으로 넣었던 값이 가장 먼저 뽑히는 구조 탑 : 가장 나중에 추가된 항목의 위치 베이스: 남아 있는 항목 중에서 가장 먼저 추가된 항목의 위치 스택의 장단점 - 장점 구조가 단순해서 구현이 쉽다. 데이터의 삽입과 삭제가 빠르다. - 단점 맨 위의 원소만 접근 가능하다. 탐색을 하려면 원소를 하나하나 꺼내서 옮겨가면서 해야한다. O(n) ✌🏻 스택의 주요 메소드 스택에는 자주 사용되는 메소드 (method)가 존재한다. add, push 스택에 값을 넣기 위해서는 add 또는 push를 사용하기도 한다. 두 함수는 모두 스택에 값을 넣을 때 사용하며, 새로 넣은 값은 가장 마지막..
2023.10.08 -
연결리스트, Linked List 는 각 노드들이 한 줄로 연결되어 있는 방식으로 각 노드는 데이터와 포인터 (다음 노드의 정보)를 가지고 있다. 연결리스트는 일반적인 배열과 다르게 삽입과 삭제가 O(1)에 가능하다는 장점이 있다. 하지만 특정 n번 째 정보를 찾는 데에는 O(n)시간이 걸린다는 단점도 있다. 💡연결리스트 종류 단방향 연결 리스트(Singly Linked List) 단방향 연결 리스트는 가장 단순한 형태의 연결 리스트이다. 하나의 노드 안에는 사진과 같이 '데이터' 와 '포인터' 로 구성되어있다. 이 자료구조는 다음 노드를 참조하는 주소 중 하나가 잘못되는 경우, 체인이 끊어진 것처럼 뒤쪽의 자료들과 연결이 끊기게 된다. 그러므로 안정적인 자료구조라고는 할 수 없을 것이다. 이를 보완하는..
[알고리즘] 연결리스트연결리스트, Linked List 는 각 노드들이 한 줄로 연결되어 있는 방식으로 각 노드는 데이터와 포인터 (다음 노드의 정보)를 가지고 있다. 연결리스트는 일반적인 배열과 다르게 삽입과 삭제가 O(1)에 가능하다는 장점이 있다. 하지만 특정 n번 째 정보를 찾는 데에는 O(n)시간이 걸린다는 단점도 있다. 💡연결리스트 종류 단방향 연결 리스트(Singly Linked List) 단방향 연결 리스트는 가장 단순한 형태의 연결 리스트이다. 하나의 노드 안에는 사진과 같이 '데이터' 와 '포인터' 로 구성되어있다. 이 자료구조는 다음 노드를 참조하는 주소 중 하나가 잘못되는 경우, 체인이 끊어진 것처럼 뒤쪽의 자료들과 연결이 끊기게 된다. 그러므로 안정적인 자료구조라고는 할 수 없을 것이다. 이를 보완하는..
2023.10.08 -
System Structure & Program Execution CPU = Memory에있는 instruction을 실행하는 것 (항상 메모리와 상호작용) *instruction: 컴퓨터에게 일을 시키는 단위로서, 컴퓨터가 알아들을 수 있는 기계어로 이루어진 명령어 - 입출력 같은 요청을 cpu에서 필요로 하면 cpu는 메모리와만 상호작용하므로 직접 디스크나 입출력에 접근하는게 아니라 - 접근 요청을 시키면 디바이스 컨트롤러는 로컬 버퍼로 값을 전달한다. - cpu는 성능이 매우 빠르고 IO 수행하는 것은 매우 느리기 때문에 cpu가 마냥 놀고만 있을 수 없기 때문에 다른 메모리의 인터럽트를 실행 CPU 내부 - interrupt line = 외부 디바이스나 이벤트에서 CPU의 주의를 끌고 중단된 작업..
[OS] System Structure & Program Execution , ProcessSystem Structure & Program Execution CPU = Memory에있는 instruction을 실행하는 것 (항상 메모리와 상호작용) *instruction: 컴퓨터에게 일을 시키는 단위로서, 컴퓨터가 알아들을 수 있는 기계어로 이루어진 명령어 - 입출력 같은 요청을 cpu에서 필요로 하면 cpu는 메모리와만 상호작용하므로 직접 디스크나 입출력에 접근하는게 아니라 - 접근 요청을 시키면 디바이스 컨트롤러는 로컬 버퍼로 값을 전달한다. - cpu는 성능이 매우 빠르고 IO 수행하는 것은 매우 느리기 때문에 cpu가 마냥 놀고만 있을 수 없기 때문에 다른 메모리의 인터럽트를 실행 CPU 내부 - interrupt line = 외부 디바이스나 이벤트에서 CPU의 주의를 끌고 중단된 작업..
2023.10.07 -
문제 😉 How to Solve 입력으로 들어오는 값이 스택 안에 push 되어 있어야 pop할수 있다. 입력으로 들어오는 값들을 arr 배열에 먼저 넣어놓은 뒤, 1부터 차례대로 스택에 넣으면서 만약 입력값(arr) 0번째 배열에 있는 값이 스택에 있다면 팝하고 입력배열의 0번째 값을 다음 번째 배열로 옮겨 계속 해서 비교해간다. 이때 스택에 푸쉬해줄 때 마다 result에 +를 넣어주고, while 조건을 만족한다면 result에 pop에 해당하는 -를 넣어준다. 스택의 모든 값들이 pop되었다면 result를 출력, 아닌경우 No를 출력한다. import java.io.BufferedReader import java.io.InputStreamReader import java.util.* import..
[백준 문제풀기] #1874번 - 스택 수열 with Kotlin문제 😉 How to Solve 입력으로 들어오는 값이 스택 안에 push 되어 있어야 pop할수 있다. 입력으로 들어오는 값들을 arr 배열에 먼저 넣어놓은 뒤, 1부터 차례대로 스택에 넣으면서 만약 입력값(arr) 0번째 배열에 있는 값이 스택에 있다면 팝하고 입력배열의 0번째 값을 다음 번째 배열로 옮겨 계속 해서 비교해간다. 이때 스택에 푸쉬해줄 때 마다 result에 +를 넣어주고, while 조건을 만족한다면 result에 pop에 해당하는 -를 넣어준다. 스택의 모든 값들이 pop되었다면 result를 출력, 아닌경우 No를 출력한다. import java.io.BufferedReader import java.io.InputStreamReader import java.util.* import..
2023.10.05 -
문제 💻 Code import java.io.BufferedReader import java.io.InputStreamReader import java.util.* fun main()= with(BufferedReader(InputStreamReader(System.`in`))){ val num = readLine().toInt() val answer = mutableListOf() repeat(num) { val lists = LinkedList() val str = readLine() val count = lists.listIterator(lists.size) //초기 listIterator 생성 str.forEach { if (it.isLetterOrDigit()) { //영어이거나 숫자인 경우 c..
[백준 문제풀기] #5397번 - 키로거 with Python문제 💻 Code import java.io.BufferedReader import java.io.InputStreamReader import java.util.* fun main()= with(BufferedReader(InputStreamReader(System.`in`))){ val num = readLine().toInt() val answer = mutableListOf() repeat(num) { val lists = LinkedList() val str = readLine() val count = lists.listIterator(lists.size) //초기 listIterator 생성 str.forEach { if (it.isLetterOrDigit()) { //영어이거나 숫자인 경우 c..
2023.10.04