분류 전체보기 254

백준 3085 c++ 사탕 게임

https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 문제 상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다. 가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다. 사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 보드의 크기 N이 ..

백준 1935 c++ 후위 표기식 2

https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 문제 후위 표기식과 각 피연산자에 대응하는 값들이 주어져 있을 때, 그 식을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 100을 넘지 않는다) 그리고 셋째 줄부터 N+2번째 줄까지는 각 피연..

백준 11656 c++ 접미사 배열

https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문제 접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다. baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다. 문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열 S가 주어..

백준 10430 c++ 나머지

https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 출력 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다. #include using namespace..

백준 10824 c++ 네 수

https://www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 문제 네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오. 두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다. 입력 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) 출력 A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다. #include using namespace std; int ma..

언리얼 몬스터 피격 시 데미지 스킨

액터 블루프린트를 하나 생성한 뒤 Text Render를 하나 생성한다 블루프린트 는 다음과 같이 연결한다 setPos라는 vector형 변수를 하나 생성해서 현재 actor의 위치를 저장한다 그리고 타임라인 노드에 의해 위치를 바꾸게 되고 그 값을 setWorldLocation노드를 통해 액터를 이동시킨다 TimeLine 노드를 클릭해서 키를 추가하고 시간을 0.7, 값을 150, 길이를 1.1로 맞춰 150만큼 게임내에서 이동하도록 설정한다 몬스터 뷰포트에서는 더미 큐브를 하나 생성해주고 인게임모드를 hidden, 콜리전을 no collision으로 설정한다 그리고 몬스터 블루프린트에서 몬스터가 피격을 받을 때 더미의 위치에서부터 Damage Text BP를 Spawn해준다 다시 text 블루프린트에..

언리얼 보스 체력바 ui 블루프린트

캐릭터 체력 ui가 있는 위젯에서 Boss Canvas Panel를 추가하고 안에는 보스 체력바와 image를 추가한다 패널은 자동으로 변수화가 안되기 때문에 오른쪽 상단에 변수인지를 클릭한다. 그리고 그래프로 넘어가서 보스 HPBar를 현재 hp,최대 hp에 따라 변동하도록 함수를 생성한다 GameInstance에서 방금 제작한 Boss Panel를 보여줄지 말지 결정하는 함수를 제작하고 보스몬스터 블루프린트로 넘어간다 보스 블루프린트에서는 게임이 시작하면 현재 Game Instance를 변수에 저장하고 피격 받을 때 생성한 Update Boss HPBar 함수를 불러와 체력바를 체력에 따라 변동시키고 플레이어와의 거리가 가까워 지면 Show Boss UI를 불러와 is Show를 true로 설정해준다..

언리얼 몬스터 체력바

먼저 다음과 같이 틀을 제거하고 progressbar를 하나 생성한다 그런다음 actor 블루프린트를 하나 생성하고 컴포넌트 추가 -> 위젯 을 불러온 뒤 위젯을 방금 생성한 몬스터 HPBar 위젯으로 지정하고 x축 크기를 90, y축 크기를 10으로 지정한다 그리고 update location이라는 함수를 하나 생성해서 다음과 같이 연결한다 이제 이 액터 블루프린트를 몬스터 블루프린트에 따라다니도록 할 것이다 먼저 큐브 컴포넌트를 하나 추가해서 몬스터 머리위에 고정시켜준다 그리고 몬스터 블루프린트에서 게임이 시작하면 spawnActor노드를 통해 방금 생성한 HPBar블루프린트를 생성할 것이다 HPBar의 위치는 더미큐브로 받아오고 HPBar를 참조하는 변수에 저장한다 그리고 Tick 이벤트에서 HPB..

언리얼 체력바 마나바 UI 블루프린트

먼저 다음과 같은 위젯 블루프린트를 하나 생성한다. 그리고 sidescrollgameInstance에서 함수 ShowGamePlayMainWidget을 하나 생성한다. 위젯이 없으면 생성해서 viewport에 생성하고 있다면 그냥 바로 viewport에 생성한다. 레벨 블루프린트에서 게임 시작하면 is Show를 true로 바꿔 게임 시작하면 바로 위젯을 키도록 설정하였다. 다시 방금 만든 위젯 -> 블루프린트로 가서 hpbar 함수를 하나 생성한다 이름은 UpdateHeroHPBar 현재 HP / 전체 HP 값을 HPBar에 넣어준다 이제 캐릭터 블루프린트로 가서 SideScrollGameInstance를 참조하는 변수를 하나 만들어주고 현재 게임 Instance로 Set해준다 그리고 현재 Game I..

백준 17298 c++ 오큰수

https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다..