프로그래밍 공부

2024/02 58

카테고리 설명
  • 문제 설명 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다. 현..

  • 문제 설명 코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다. 착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다. 코니는 하루에 최소 한 개의 의상은 입습니다. 코니가 가진 의..

  • 8.4 중첩된 클래스 클래스 정의가 메서드나 데이터 멤버만 담을 수 있는 것은 아니다. 클래스 정의에는 struct, typedef, enum도 포함될 수 있다. 클래스 안에 선언된 것들은 클래스명 에 스코프 지정 연산자::를 붙여서 이용 가능하다. 단, pulbic으로 선언되어 있어야 한다. 클래스 안에 또 다른 클래스를 정의하는 것도 가능하다. 예를 들어 SpreadSheetCell 클래스가 SpreadSheet 클래스의 구성 요소로 완전하게 포함된다면 다음과 같이 두 클래스를 동시에 정의할 수 있다. class SpreadSheet { class SpreadSheetCell { public: SpreadSheetCell(); SpreadSheetCell(double initalValue); Spre..

  • 지금까지 구현하였던, 케릭터를 바탕으로 인터페이스 형태로 재구축하여, 무기를 기준으로 설계를 다시해보자. 무기를 든 Character는 항상 그 무기의 공격모션 을 사용할 수 있어야 한다. 그럼으로, 무기와 케릭터를 인터페이스로 정의하고, 해당 인터페이스를 구현하여 각 캐릭터당 공격모션을 자유롭게 사용할 수 있도록 공통사항을 주어야 할 것 이다. ICharacter , IWeapon으로 구성된 인터페이스를 상속받는 각 무기와 Character를 생성한다. 여기서, 캐릭터는 지금까지 만들었던 player와 Enemy, 무기는 만들었던 Sword와 FireBall이다. 인터페이스 구축하기 언리얼에서는 간단하게 인터페이스를 구현할 수 있도록 지원해주고 있다. 위와 같이, 블루프린트 인터페이스를 생성해준다. 인..

  • 문제 설명 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈 나머지를 return 하도록 solution 함수를 작성해주세요. 제한사항 격자의 크기 m, n은 1 이상 100 ..

  • 8.3 메서드의 종류 데이터 멤버에 여러 종류가 있듯이 메서드 또한 여러 종류가 있다. 8.3.1 static 메서드 데이터 멤버의 경우와 마찬가지로 메서드도 특정 클래스의 모든 객체에 공통적으로 적용되어야 할 때가 있다. static 메서드의 선언 방법은 데이터 멤버와 같다. 예를 들어 SpreadSheetCell 클래스의 편의 메서드 stringToDouble() 과 doubleToString()을 생각해보자, 이 두 메서드는 객체에 종속되는 부분이 없다. 따라서 static으로 선언해도 된다. 다음은 이 두 메서드를 static으로 선언한 SpreadSheetCell 클래스 정의이다. static std::string doubleToString(double val); static double str..