분류 전체보기

    [C++] 백준 - 10610번 문제

    10610번: 30 (acmicpc.net) 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 10610번 : 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 10^5개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 ..

    UC++ 프로젝트 - 9

    * ActionAsset 및 ActionComponent 구현 · Popolit/MyActionGame@f3575a0 - ActionComponent가 Action클래스를 관리하도록 구현 - ActionAsset이 Action의 데이터 및 동작 조건을 갖도록 구현 - WeaponData가 ActionData의 포인터를 갖도록 구현 * 주 변경점 - ActionAsset은 Action들을 모은 리 github.com * ActionAsset 및 ActionComponent 구현 - ActionComponent가 Action클래스를 관리하도록 구현 - ActionAsset이 Action의 데이터 및 동작 조건을 갖도록 구현 - WeaponData가 ActionData의 포인터를 갖도록 구현 * 주 변경점 -..

    UC++ 프로젝트 - 8

    오랜 고민 끝에 위와 같이 Action Component를 분리하여 Action에 관한 내용을 담당하기로 했습니다. * 바뀐 구조의 장점 - 기존에 만든 Action Asset을 여러 Weapon에서 재사용 가능합니다. - 플레이어의 현재 상태, 어떤 버튼을 눌렀는 지에 따라 원하는 액션을 정해줄 수 있습니다. => 즉, 다음과 같은 구조가 됩니다. 예를 들어, 1. 지상에서 Hitted 상태일 때 None 버튼(상태 변환 시 실행)을 누르면 경직 액션이 실행 2. 공중에서 Idle 상태일 때 Evade 버튼을 누르면 공중 대쉬를 실행 3. Guard 상태일 때 땅에서 Attack 버튼을 누르면 어퍼 슬래쉬를 실행 4. 대쉬 상태일 때 땅에서 Attack 버튼을 누르면 스팅거 스킬을 실행 과 같은 액션을..

    [C++] 백준 - 11056번 문제

    11056번: 두 부분 문자열 (acmicpc.net) 11056번: 두 부분 문자열 첫째 줄에 문자열 A, 둘째 줄에 문자열 B가 주어진다. 두 문자열은 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 11056번 : 두 부분 문자열 두 문자열 A와 B가 주어진다. 이때, A와 B를 부분 문자열로 가지는 문자열 S를 구하는 프로그램을 작성하시오. 가능한 S가 여러 가지인 경우 길이가 가장 짧은 것을 출력한다. 예를 들어, A = "baekjoon", B = "hongjun"인 경우 가능한 S중 길이가 가장 짧은 것 중 하나는 "baekhongjouon"이다. 입력 첫째 줄에 문자열 A, 둘째 줄에 문자열 B가 주어진다. 두 문자열은 알파벳 소문자로만 이루어져 ..

    [메모] l-value와 r-value

    * 서론 - 고전적으로 l-value, r-value는 대입문 왼편, 오른편에 올 수 있는 값들을 의미했습니다. - 최근에는 l-value는 참조가 가능한 객체라고 정의합니다. 즉, l-value : &연산자를 붙일 수 있는 주소 값을 취할 수 있는 값 r-value : 주소값을 취할 수 없는 (임시) 값 으로 정의할 수 있겠습니다. 실제로, 컴파일러는 r-value의 연산자를 허용하지 않습니다. * l-value 참조자 int& func(int& a) { return a; } int main() { int a = 3; int b = 2; func(a) = 4; printf("%d\n", a);//4 printf("%d\n", func(a));//4 printf("%d\n", func(b));//2 } ..

    C++의 기초 - 7

    * 분할 컴파일 여러 개의 소스 코드들을 따로 컴파일하는 작업 - #include "헤더" 여러 cpp 파일에서 같은 클래스/ 구조체를 사용하고 싶을 때 .h 파일을 include 하여 같은 내용을 여러번 작성할 필요가 없습니다. .h 파일에 들어갈 수 있는 내용 1. 함수 원형 2. #define 혹은 const 변수 3. 구조체/ 클래스의 선언 4. 템플릿 선언 5. inline 함수 - 분할 컴파일의 장점 1. 파일의 분리로 인해 모듈화가 가능합니다. 2. 프로그램 수정 시 수정된 파일만 컴파일하여 컴파일 속도를 높입니다. 3. 모듈별 테스트 및 디버깅이 가능합니다. * 기억 존속 시간 - C++은 네가지 유형으로 메모리를 저장합니다. 1. 자동 기억 존속 : 함수 또는 블럭 내부의 메모리가 해당 ..

    [C++] 백준 - 2240번 문제

    2240번: 자두나무 (acmicpc.net) 2240번: 자두나무 자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어 www.acmicpc.net 2240번 : 자두나무 자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어지는 자두를 받아서 먹고는 한다. 자두를 잡을 때에는 자두가 허공에 있을 때 잡아야 하는데, 이는 자두가 말랑말랑하여 바닥에 떨어지면 못 먹을 정도로 뭉개지기 때문이다. 매 초마다, 두 개의 나무 중 하나의 나무에서 열..

    프로젝트나 공부할 때 메모를 남기는 습관

    주석으로 처리해도 어차피 나중에 찾아보기 어려운 것 같아 블로그에 써두는 것이 최고일 것 같습니다. 앞으로는 공부 도중 나중에도 찾아볼 것 같은 지식을 남겨두도록 하겠습니다. 나는 바보야~