본문 바로가기

알고리즘6

선점형, 비 선점형 스케줄링 선점형 스케줄링 프로세스가 CPU를 비롯한 자원은 사용하고 있더라도 운영체제가 프로세스로부터 강제로 자원을 빼앗아 다른 프로세스에 할당 할 수 있는 스케줄링 방식 -> 독점 X 비 선점형 스케줄링 하나의 프로세스가 자원을 사용하고 있다면 그 프로세스가 종료되거나 스스로 대기 상태에 접어들기 전까지는 다른 프로세스가 끼어들 수 없는 스케줄링 방식 FCFS (First Come First Served) 스케줄링 - 선입 선처리 스케줄링 - 단순히 준비 큐에 삽입된 순서대로 처리하는 비선점 스케줄링 - 먼저 CPU를 요청한 프로세스 부터 CPU 할당 - 처음 요청한 프로세스의 처리시간이 길어지는 경우, 뒤의 프로세스들의 기다리는 시간이 매우 길어질 수 있다. (호위효과) Round Robin 스케줄링 - 선입.. 2023. 3. 17.
알고리즘 - 프로그래머스([3차]진수 게임) - 자바 class Solution { public String solution(int n, int t, int m, int p) { String answer = ""; int wordLength = t * m; String[] overTen = {"A", "B", "C", "D", "E", "F"}; StringBuilder sb = new StringBuilder(); int i = 0; while (sb.length() < wordLength) { if (i = 10) { String over = overTen[i - 10]; sb.append(over); }else sb.append(i); i++; continue; } StringBuilder str = new StringBuilder(); int num.. 2022. 9. 29.
알고리즘 - 프로그래머스(타겟넘버) n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인 .. 2022. 8. 15.
알고리즘 - 프로그래머스([1차] 비밀지도) 입력으로 지도의 한 변 크기 n 과 2개의 정수 배열 arr1, arr2가 들어온다. 1 ≦ n ≦ 16 arr1, arr2는 길이 n인 정수 배열로 주어진다. 정수 배열의 각 원소 x를 이진수로 변환했을 때의 길이는 n 이하이다. 즉, 0 ≦ x ≦ 2n - 1을 만족한다. 출력 형식 원래의 비밀지도를 해독하여 '#', 공백으로 구성된 문자열 배열로 출력하라. 입출력 예제 매개변수값 n 5 arr1 [9, 20, 28, 18, 11] arr2 [30, 1, 21, 17, 28] 출력 ["#####","# # #", "### #", "# ##", "#####"] 매개변수값 n 6 arr1 [46, 33, 33 ,22, 31, 50] arr2 [27 ,56, 19, 14, 14, 10] 출력 ["#####.. 2022. 8. 13.
알고리즘 - 프로그래머스(숫자 문자열과 영단어) 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. class Solution { public int solution(String s) { int answer = 0; s = s.replace("zero", "0"); s.. 2022. 8. 11.
알고리즘 - 프로그래머스(신규아이디 추천) 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다. 7단계 new_id의 길이가 2자 이하라면, new_id.. 2022. 8. 9.