분류 전체보기 (86) 썸네일형 리스트형 [Medium] 1663. Smallest String With A Given Numeric Value (Microsoft) #문제 설명 Leetcode 1663번 문제에서는 문자열 길이 n과 정수 k가 주어진다. 이 문제에서 각 소문자 알파벳들에게는 1부터26의 값이 부여된다 (예: a는 1, b는 2, ... , z는 26). 이 문제에서는 주어진 n과 k에 맞는 문자열을 return해야한다. 예를 들어 n = 3과 m은 27이 주어지면 "aay"라는 문자열을 return해야된다. 왜냐하면 문자열 길이는 3이어야하고 a = 1 + a = 1 + y = 25 = 27이기 때문이다. #문제 풀이 class Solution { public String getSmallestString(int n, int k) { char[] result = new char[n]; for (int position = n - 1; position >.. [P1] The Customizable Shell #Shell Concepts shell 셸이란 무엇일까? 셸이란 명령어를 해석하는 데 사용하는 프로그램 즉, Command Interpreter 이다. 셸은 사용자가 입력하는 명령어를 해석하고 수행하여 그 결과를 화면에 표시하여 준다. 셸을 터미널과 같다고 생각할 수도 있는데, 터미널은 셸의 프론트 엔드라고 생각하면 된다. #Behind the Scenes of a shell FOUR STEPS for non-built-in 셸이 사용자 입력을 기다린다 셸이 command를 해석한다 프로세스를 fork한다 Foreground일 경우 parent process는 child process가 끝날때까지 기다린다. Foreground가 아닐경우 parent process가 process를 반복한다 (child .. [Medium] 48. Rotate Image (Amazon/Microsoft) #문제 설명 Leetcode 48번 문제에서는, n x n 2d array, 즉 matrix가 주어진다. Matrix의 각 index는 정수들로 채워져 있다. 그 주어진 matrix를 위의 예시 저럼 90도 오른쪽으로 뒤 집은 matrix를 return 하는 문제이다. 루빅스 큐브 앞면에 숫자들이 적혀저 있고 그 루빅스 큐브 오른쪽으로 한번 돌린다고 생각하면된다. #문제 풀이 #Transpose후 horizontally swapping풀이 Linear Algebra (선형 대수학)을 배울때 transpose (전치) 라는 것을 배운다. Transpose란 matrix의 행과 렬을 바꾸는 행위이다. 이 문제는 transpose를 사용해 풀 수있다. 먼저 matrix를 transpose 하고 matrix를 .. [Lecture 4] Implementing Job Control Shells #Job Control Job control, 작업 제어란, 유닉스 및 유닉스 계열 운영 체제에서 셸(shell)에 의한 작업 제어, 특히 인터랙티브(interactive)에 의한 작업 제어를 가리킨다. 기본 작업 제어 기능은 작업/프로세스 그룹의 모든 프로세스를 일시 중단, 재개 또는 종료하는 것이다. 작업 제어의 고급 기능으로는 작업에 signal을 전송하여 수행할 수 있다. 리눅스에서 모든 프로세스들은 시그널이 전달되면 종료되게 돼있다. #Job Control Shells 작업 제어 Shell은 사용자가 command-line에서 프로그램을 시작하고 관리할 수 있도록 하는 제어 프로그램이다. 작업 제어의 코어는 "read-evel" loop을 포함한다 Shell은 내장 명령 (built-in com.. [Lecture 3] Unix Signals #Unix Signals 유닉스/리눅스에서 시그널이란 무엇일까? 리눅스 터미널에서 프로그램을 실행시키다가 ctrl-c 를 눌러서 프로그램을 강제로 종료 시켜본 경험이 있다면 이미 시그널을 보내 보았다는 의미이다. 프로그램을 실행시키다가 ctrl-c를 누르면 인터럽트를 발생 시켜 운영체제가 프로그램에 제제를 건다. 이렇게 프로세스에서 특정 event가 발생 했을 때 "신호"를 보내는 것을 시그널이라고 한다. 유닉스 신호는 kernel이 사전 정의된 집합(< 32)에서 관심 있는 이벤트를 프로세스에 알릴 수 있는 메커니즘을 제시한다. 정수 번호로 표시되며, 일부 선택적 추가 정보와 연관되기도 한다. 여기서 이런 event들은 2가지로 분류된다 Synchronous (동기적) event: 프로세스가 수행한 어.. [Medium] 92. Reverse Linked List II #문제 설명 Leetcode 92번 문제는 1부터 n까지 정렬된 Linked List와 left와right 값이 주어진다. 그럼 left부터right까지의 노드들을 reverse하면 된다. #문제 풀이 List list = new ArrayList(); ListNode curr = head; while (curr != null) { list.add(curr); curr = curr.next; } Object[] arr = list.toArray(); left = left - 1; right = right - 1; while (left < right) { ListNode temp = (ListNode) arr[left]; arr[left] = arr[right]; arr[right] = (ListNode).. [Easy] 217. Contains Duplicate #문제 설명 Leetcode 217번 문제는 주어진 정수 배열에 중복된 숫자가 들어있는지 알아내는 문제이다. 배열에서 중복이 발생되면 true, 중복이 없다면 false를 return 하면 된다. #문제 풀이 1. HashSet이용 풀이 Set에는 중복 데이터를 담을 수 없다는 특성이 있다. 이 특성을 활용하면 문제를 쉽게 풀수있다. class Solution { public boolean containsDuplicate(int[] nums) { Set set = new HashSet(); for(int i = 0; i < nums.length;i++){ if(!set.add(nums[i])){ return true; } } return false; } } 먼저 HashSet를 만들고 array의 각 정.. [Medium] 856. Score of Parentheses #문제 설명 Leetcode 856번 문제는 괄호로 구성된 문자열이 구성된다. 이 괄호들 패턴에는 점수가 있다. () 는 1 점, ()() 는 1 + 1 = 2, (()) = 2 * 1 = 2 이다. 예를 들어 (()()) 라는 문자열이 주어지면 () + () = 2 이고 (2) 는 2 * 2 이기때문에 4가 정답이다. #문제 풀이 class Solution { public int scoreOfParentheses(String s) { Stack st = new Stack(); int score = 0; for(int i = 0; i < s.length(); i++){ char ch = s.charAt(i); if(ch == '('){ st.push(score); score = 0; } else { sc.. 이전 1 ··· 5 6 7 8 9 10 11 다음