본문 바로가기

전체 글199

백준 2230 1. 문제이해 요약 : 배열 A에서 두 수(N)를 골랐을 때 차이가 M이상이면서 제일 작은 차이를 구함 1 ≤ N ≤ 100,000 (배열 A의 크기) 0 ≤ M ≤ 2,000,000,000 0 ≤ |A[i]| ≤ 1,000,000,000 (배열 A에 들어갈 수 있는 값) 2. 문제분석 N 크기의 배열에서 두 수를 골라서 차이가 M이상인지 확인 M이상이면 차이를 구해서 제일 작은지 확인 배열의 크기가 100,000인 경우 이중 for문으로 푼다고 하면 100,000(i) * 100,000(j) = 10,000,000,000(백억) 알고리즘 문제에서 CPU가 1억 번 연산을 하는 동안 1초가 걸린다고 가정을 해보면 제한시간이 2초인 경우 2억 번 연산을 하므로 시간초과가 발생하게 된다. 이중 for문 방식.. 2024. 1. 30.
객체지향 프로그래밍(OOP) 개념정리 1. Encapsulation(캡슐화) 데이터 또는 데이터를 활용하는 함수를 캡슐(클래스) 안에 두는 것 class라는 구조를 만들어서 데이터와 함수들을 정리 접근 제어자를 사용함으로써 클래스 내에서만 사용되는 내부 작업을 위해 외부에서 함부로 접근하지 못하도록 제한하거나 내부에 있는 데이터를 외부에서 사용해야 되는 경우 그 데이터를 외부에 노출시키는 역할도 수행 class Entrepreneur { private: string name; int stocks; string company; public: void setStocks(int value) { this->stocks = value; } string getName() { return this->name; } // 생성자 함수 -> 객체가 만들어질 .. 2024. 1. 25.
[스파르타 국비] 유니티로 만드는 게임개발 2주차 1. awake 함수 스크립트 인스턴스가 로드 되는 중에 호출되는 함수, 스크립트 비활성인 상태에서도 호출됨 (인스턴스가 만들어진 후에 로드 되는 함수) 씬에 있는 모든 게임 오브젝트의 awake 함수는 무작위로 호출되기 때문에 awake 함수안에서 다른 게임 오브젝트를 호출 할 때 그 오브젝트가 인스턴스화 되지 않았을 수도 있기 때문에 문제가 발생 그래서 awake 함수에서는 자신의 인스턴스 자체를 참조하거나 변수를 초기화 하는데 사용한다 public class gameManager : MonoBehaviour { public static gameManager gameManage; void Awake() { // this -> "gameManager"인스턴스를 gameManage 변수에 저장 gameM.. 2024. 1. 23.
좋은 수 구하기(백준 1253) 1. 문제이해 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. (|Ai| ≤ 1,000,000,000, Ai는 정수) -> 음의 정수, 0도 포함 예시1) N=3 일때 3, 2, 5 어떤 수가 3일때 다른 두 수 2 + 5의 조합으로 나타내지 못함 어떤 수가 5일때 다른 두 수 3 + 2의 조합으로 나타낼 수 있으니까 좋은 수로 판단 예시2) N=2 일때 0, 0 어떤 수가 0일(첫번째 있는 0)때 다른 두 수가 없으므로 조합을 만들 수 없음 자기자신을 포함해서 조합을 만들 수 있지만 자기자신이 어떤 수에 포함되는 경우에는 최소.. 2024. 1. 21.
[스파르타 국비] 유니티로 만드는 게임개발 1주차 1. 유니티 좌표계 X축 : 오른쪽 방향 Y축 : 위쪽 방향 Z축 : 앞 쪽(모니터를 바라볼 때 정면) 방향 toward = -1.0f; transform.localScale = new Vector3(toward, 1, 1); 캐릭터의 방향을 왼쪽으로 변경하려면 유니티는 X축의 정뱡향이 오른쪽이므로 마이너스 값을 줘서 역방향으로 설정 (언리얼이나 다른 게임 엔진의 경우 좌표계가 다르기 때문에 그에 맞춰서 설정해야됨) 2. 프리팹 게임이 끝나기 전까지 빗방울은 계속 떨어지기 때문에 빗방울이라는 오브젝트가 계속 생성되게끔 프리팹으로 만들어서 계속 호출 GameManager 스크립트 역할 : 전반적인 게임 동작을 관리(빗방울 오브젝트, 점수..등) public GameObject rain; 유니티에서 rain.. 2024. 1. 20.
주몽의 명령(백준 1940) 1. 문제이해 재료개수(N)를 가지고 갑옷을 만드는데 필요한 수(M)를 몇 개 만들 수 있는지 갑옷을 만들기 위해서는 두 개의 재료를 합침 ex) N=3, M=5, N의 재료 1, 3, 4 -> 1 + 4 = 5 총 1개의 갑옷을 만들 수 있음 사용된 재료는 사라짐 2. 문제분석 재료를 정렬시킨 후 투 포인터를 배열의 양쪽 끝에 위치시킴 2 7 4 1 5 3 start end 1 2 3 4 5 7 start end start와 end 포인터가 가리키는 값을 더해서 M과 동일하면 두 개의 재료를 버리고 다음 위치로 이동 start와 end를 더했을 때 M보다 작다면 start 포인터 위치를 한 칸 증가시키고 end와 더해줌 (M보다 작으니까 값을 조금씩 키워서 M과 맞추기 위해 작은 수 중에서 그 다음으로.. 2024. 1. 18.