분류 전체보기 254

백준 15661 링크와 스타트 c++

https://www.acmicpc.net/problem/15661 15661번: 링크와 스타트 첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100 www.acmicpc.net 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이다. 이제 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. 두 팀의 인원수는 같지 않아도 되지만, 한 명 이상이어야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아..

백준 14889 스타트와 링크 c++

https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속..

백준 14501 퇴사 c++

https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 ..

백준 1759 암호 만들기 c++

https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 문제 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다. 암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o, u)과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 또한 정렬된..

백준 6603 로또 c++

https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13..

언리얼 데미지 텍스트

액터 블루프린트를 하나 생성하고 이름은 MonsterDamageTextBP로 한다. 텍스트 렌더 컴포넌트를 하나 추가하고 이름은 TextRender로 한다. 가로 정렬, 세로 정렬을 Center로 하여 텍스트가 가운데로 오도록 한다. 변수를 하나 추가하고 이벤트그래프에서 노드를 다음과 같이 연결한다. 현재 위치를 setPos에 저장한 뒤 타임라인의 x축만큼 setPos Z값에 더한 벡터를 텍스트의 위치로한다. 이 때 타임라인은 다음과 같이 설정하여 0.7초가 지났을 때 1.1초까지 값이 증가하도록 하여 실질적으로 텍스트가 해당 위치에서 0.7초부터 1.1초까지 z위치가 증가하도록 해준다. 함수를 하나 생성하고 이름은 Set Damage Text로 한다. 해당 함수는 정수형 변수 Damage를 인자로 받아..

언리얼 블루프린트 보스 HP바

다음과 같이 캔버스 패널을 하나 추가하고 그 자식들로 프로그래스바와 이미지를 추가한다. 이후 디테일 패널에서 캔버스 패널을 변수로 사용할 수 있도록 변수여부를 체크해준다. 프로그레스바가 체력에 따라 바뀌는 함수를 하나 생성한다. 보스 이미지를 변경하는 함수를 제작한다. 게임 인스턴스에서 함수를 하나 생성한다. 해당 함수는 인자 isShow가 true일 경우 보스 패널이 보이고 false일 경우 패널을 Hidden하도록 하였다. 보스몬스터 블루프린트에서 GameInstanceRef변수를 하나 생성하고 현재 게임 인스턴스를 GameInstanceRef에 저장하도록 한다. 틱 이벤트에서 보스가 캐릭터와의 거리가 500 이하일 때 쫓아가는 부분의 노드에 Show Boss UI 함수를 연결하고 isShow를 tr..

언리얼 몬스터 HP바

몬스터 머리위에 둘 위젯을 하나 생성하여 이름은 MonsterHPBar로 한다. 프로그레스 바를 하나 생성한 뒤 퍼센트를 1로 맞춘다. 액터 블루프린트를 하나 생성하고 이름은 CharHPBarBP로 한다. 위젯 컴포넌트를 하나 추가하고 위젯 클래스를 방금 만든 MonsterHPBar로 한다. 실행되면 Location이 갱신되는 함수를 하나 만든다. 몬스터 블루프린트로 가서 큐브를 하나 생성하고 이름은 HPBarPosDummy로 한다. 이후 콜리전과 visibility를 꺼준다. BeginPlay이벤트에서 몬스터 hp바 블루프린트를 위에 생성한 dummy위치에 만들도록 한다. 다음 틱 이벤트에 다음과 같이 노드를 연결하여 매 틱마다 hp바의 위치가 갱신되도록 한다. 변수에 프로그레스 바 레퍼런스 변수를 하..

백준 10971 외판원 순회 2 c++

https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 문제 외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급되는 문제 중 하나이다. 여러 가지 변종 문제가 있으나, 여기서는 가장 일반적인 형태의 문제를 살펴보자. 1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다...

백준 10819 차이를 최대로 c++

https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 문제 N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| 입력 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보..