1. 코딩테스트
오늘은 "스택" 단원을 공부하였습니다.
푼 문제 1) level 1 - 크레인 인형뽑기 게임
https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 특이한 점은 없는 문제
#include <string>
#include <vector>
#include <stack>
using namespace std;
stack<int> st;
int solution(vector<vector<int>> board, vector<int> moves)
{
int answer = 0;
int colLength = board.size();
for(int i = 0; i < moves.size(); ++i)
{
for(int x = 0; x < colLength; ++x)
{
if(board[x][moves[i]-1] != 0)
{
int cur = board[x][moves[i]-1];
if(!st.empty() && st.top() == cur)
{
st.pop();
answer += 2;
}
else
st.push(board[x][moves[i]-1]);
board[x][moves[i]-1] = 0;
break;
}
}
}
return answer;
}
푼 문제2) level 2 - 주식 가격
https://school.programmers.co.kr/learn/courses/30/lessons/42584
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 생각할 것 (stack에서 중요한 테크닉)
- 이중 for문으로 푸는 경우 이 문제는 시간초과가 발생할 것입니다.
- 주식 가격이 떨어지는 순간을 기준으로 체크하여, 효율성을 높였습니다.
- 흐름
- prices 를 돌면서 stack에 현재 주식 인덱스를 넣습니다.
- 이때 stack의 top보다 새로 넣을 주식의 가격이 작다면, pop 해주면서 길이를 구해주게 됩니다.
- 이 과정이 모두 끝나고 stack에 남은 것들은 끝날 때 까지 가격이 줄어들지 않은 것이기 때문에 마지막 while문을 통해서 길이를 구해주면 됩니다.
- 스택 테크닉
- stack의 top과 특정 값을 비교하면서, top을 갱신하기
- 인덱스 간의 차이로 길이 구하기
#include <string>
#include <vector>
#include <stack>
using namespace std;
vector<int> solution(vector<int> prices)
{
vector<int> answer(prices.size());
stack<int> st;
for(int i = 0; i < prices.size(); ++i)
{
while(!st.empty() && prices[st.top()] > prices[i]) //가장 최근에 넣은 값보다 작은 값이 등장할때
{
answer[st.top()] = i - st.top();
st.pop();
}
st.push(i);
}
while(!st.empty())
{
answer[st.top()] = prices.size() - 1 - st.top();
st.pop();
}
return answer;
}
2. 알고리즘
알고리즘에서 쓰는 함수를 배워서 써보면서 정리를 하였습니다.
3. 언리얼
과제를 진행하면서, UI 만들기에 대한 내용을 정리하였습니다.
- 기본 HUD 만들기
- 점수와 현재 레벨, 남은 시간을 표시할 때 사용할 UI를 만들었습니다.
Unreal Engine - 간단한 UI 만들기 (HUD)
1. 기본 세팅위젯 블루프린트 선택 후 -> 사용자 위젯 선택디자이너 탭팔레트 -> 패널 -> 캔버스 패널 추가추가적으로 아래와 같이 화면 크기를 조절하여, 우리가 구현하고자 하는 게임에 사이즈
gbleem.tistory.com
- Main Menu 만들기
- 게임을 시작하고, 끝나면 재시작 하는 동작을 합니다.
Unreal Engine - Main Menu UI (Start, Restart)
1. 디자이너 탭 구성아래와 같은 계층구조로 구성 2. Menu 전용 맵게임이 시작하면 Menu Level에서 위에서 만든 UI가 실행된 후 Start 버튼을 누르면 게임이 시작되는 로직으로 제작할 것이다.새로
gbleem.tistory.com
- UI 애니메이션 만들기
- 시간이 줄어드는 것을 bar 형태로 만든 후
- 시간이 얼마 남지 않았을 때 bar가 움직이면서 긴박감을 주는 UI를 구현하였습니다.
Unreal Engine - UI Animation
progress bar를 통해 구현한 타이머 UI의 시간이 일정 시간보다 적어진 경우 애니메이션을 실행하는 것을 구현한 내용이다.1. BP에서 애니메이션 생성 (디자이너 탭)애니메이션을 주고 싶은 UI를 클릭
gbleem.tistory.com
- 3D UI
- 캐릭터가 특정 아이템을 먹었을 때, 효과가 적용되는 시간동안 상태를 나타내기 위한 UI를 구현하였습니다.
Unreal Engine - 3D UI
캐릭터가 특정 아이템을 먹으면, 이미지 UI가 뜨고 해당 효과가 사라지면 UI가 보이지 않도록 하는 것을 구현할 것이다.1. Widget BP 만들기유저인터페이스 -> 위젯블루프린트 -> 사용자 위젯 -> 원하
gbleem.tistory.com
'TIL' 카테고리의 다른 글
TIL day 40 (0) | 2025.02.14 |
---|---|
TIL day 39 (0) | 2025.02.13 |
TIL day 37 (1) | 2025.02.11 |
TIL day 36 (0) | 2025.02.10 |
TIL day 35 (2) | 2025.02.07 |