2024/01 107
-
문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까지 : 11..
-
6.2 재사용성이 높은 코드를 디자인하는 방법 재사용성이 높은 코드는 두 가지 특성을 만족해야 한다. 첫 번째로 다른 분야의 애플리케이션이나 조금 다른 사용 시나리오에서도 무리 없이 적용할 수 있도록 기능이 충분히 일반화되어 있어야 한다. 특정 프로그램에 종속적인 세부 사항이 많이 포함된 코드는 다른 프로그램에서 재사용하기 어렵다. 두 번째로 재사용성이 높은 코드는 언제나 사용하기 쉬워야 한다. 인터페이스와 기능을 이해하는 데 너무 많은 시간을 소비하지 않고도, 충분히 준비된 상태에서 목적하는 애플리케이션에 적용할 수 있어야 한다. 코드를 전달하는 수단 또한 중요하다. 소스 코드 상태 그대로 전달할 수도 있고, 정적 또는 동적 라이브러리(윈도우의 DLL 또는 리눅스의 so 같은) 형태로 전달할 수도 있다..
-
값의 정보를 CSV파일로 저장, 불러오기 해보자. 먼저, CSV파일 형태로 저장하기 위해 형식을 만들어야 한다. 데이터 테이블 만들기 데이터 테이블은 위와같이 생성할 수 있다. 지정된 데이터 테이블에 대해 형식을 저장하거나, 일정 형식으로 저장되어있는 CSV와 같은 형태로 데아터를 지정하고 불러오면 된다. 데이터 테이블을 만들 시에 위와같이 가져올 수 있다. CSV파일 형태로 데이터가 저장되며, 여기서 수정하여 내보낼 수 있다. 또는 CSV파일을 가져올 수도 있다. 데이터 테이블 불러오기 형식이 만들어져 있는 CSV파일이다. 이 데이터를 언리얼에서 가져와 사용하려면 다음과 같은 순서를 따른다. 먼저, 가져올 데이터 테이블 CSV의 형식을 전부 지정해주어야 한다. 블루프린트 -> 구조체 로 이동하여, 구조..
-
문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예 s answer "()()" true "(())()" true ")()(" false "(()(" false 문제 풀이 문..
-
문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예제 ph..
-
문제 설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다. 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 선수의 수는 1명 이상 100명 이하입니다. 경기 결과는 1개 이상 4,500개 이하입니다. results 배열 각 행 [A, B]는 A 선수가 B 선수를 이겼다는 의..