본문 바로가기
반응형

전체 글314

[알고리즘/백준] 11048번 이동하기 Python 파이썬 갈수록 DP에 대한 감을 잡아가고 있는 것 같습니다. 이번에도 DP 관련 문제입니다. 준규가 (1,1) 위치에서 (N, M) 위치까지 갈 때 최대로 얻을 수 있는 사탕의 갯수를 구하는 문제로 지도가 나오길래 BFS 문제인가 흠칫했습니다. DFS든 BFS든 여러 방법으로 풀 수 있는 문제같긴 했습니다. (궁금해서 찾아보니 BFS 로는 가능하고 DFS 경우 메모이제이션을 했다면 전에 값을 구한 적이 있을 때 바로 리턴하는 부분이 있어야 하는데 이 코드에서는 끝에 도달했을 때만 리턴을 할 뿐 메모한 부분을 활용하고 있어 의미가 없다고 하네요. 시간초과 날 경우도 높고) 일단 DP 문제로 들어온거라 DP 방식을 사용해서 풀어볼려고 시도해보았습니다. (BFS와 DP 문제 구분법 : BFS는 그래프에서 간선의 가중.. 2023. 4. 21.
[알고리즘/백준] 2193번 이친수 Python 파이썬 요즘도 여전히 다이나믹 프로그래밍 문제를 풀고 있습니다. 이번 문제는 위 조건에서 요구하는 이친수를 찾는 문제입니다. 그러면 무엇을 해야하는가? 전번 풀이에도 이야기했듯이 다이나믹 프로그래밍 문제를 풀 때는 규칙성을 찾는 것이 매우 중요하며 이를 찾기 위해 직접 몇가지의 경우의 수를 적어보면서 어떻게 결과가 도출되는지 과정을 살펴보는 것이었습니다. 그렇기 때문에 초반에 어떻게 결과가 도출되는지 아래와 같이 적어보았습니다. 위 풀이를 보면서 규칙성을 찾을 수 있게 되었습니다. 바로 전 2단계의 답 합이 다음 답이라는 것이었습니다. 즉 dp[i] = dp[i-1] + dp[i-2] 로 정의할 수 있습니다. 다음과 같은 코드로 통과하였습니다. import sys input = sys.stdin.readline.. 2023. 4. 19.
[유니티] 게임 시작하기 / 나가기 / 이어하기 버튼 스크립트 어떤 게임이든 게임 시작하기 , 나가기, 이어하기 버튼이 필요해서 정리하게 되었습니다. 시작하기 버튼 코드 : public void StartNewGame(){ Debug.Log("StartNewGame"); SceneManager.LoadScene(1);} 나가기 버튼 코드 : public void OnClickExit(){ Application.Quit(); Debug.Log("OnClickExit");} 이어하기 버튼 코드 : public void ReLoadGame(){ Debug.Log("ReLoadGame"); int saveStage = PlayerPrefs.GetInt("saveStage"); // 불려올때 // PlayerPrefs.SetInt("saveStage", 1); 저장할때 S.. 2023. 4. 19.
[알고리즘/백준] 11057번 오르막 수 Python 파이썬 아쉽게도 골드 문제는 아니였지만 드디어 DP 문제를 풀이 안보고 풀 수 있게 되었습니다. 수의 길이 N이 주어졌을 때 오름차순을 이루는 수%10007 을 구하는 문제였습니다. DP 문제를 풀면서 느낀 점은 규칙성을 찾는 것이 매우 중요하다고 느꼈고 이를 적용시키기 위해서는 직접 몇가지의 경우의 수를 적어보면서 어떻게 결과가 도출되는지 과정을 살펴보는 것이었습니다. 먼저 다음과 같은 코드로 통과하였습니다. import sys input = sys.stdin.readline n = int(input()) dp = [ 1 for _ in range(10) ] for i in range(2, n+1): for j in range(10): if i == 2: dp[j] = 10 - j else: for k in .. 2023. 4. 18.
[유니티] 화면 드래그(스와이프/터치)에 따른 오브젝트 회전 이번 글에는 게임 만들다가 나중에 또 쓸 거 같은 기능들 정리하고자 합니다. 화면 드래그(스와이프/터치)에 따른 오브젝트 회전하는 기능으로 보통 360도 물체를 보고 싶을 때 주로 사용하는 기능인 것 같습니다. 구현 결과 : 안드로이드 상에서 손가락으로 드래그할 때 장면이라 마우스가 표시되지는 않지만 현재 오른쪽으로 스와이프 하면 물체가 오른쪽 방향으로 회전 / 위로 스와이프하면 위로 회전 등 상하좌우 스와이프 방향에 따라 물체가 맞게 회전할 수 있도록 구현하였습니다. 다음과 같은 코드를 사용했습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class TouchManager : MonoBeh.. 2023. 4. 17.
[알고리즘/백준] 11052번 카드 구매하기 Python 파이썬 이번 문제는 기존에 풀던 게임 문제집이 아닌 다이나믹 프로래밍 알고리즘으로 넘어와서 문제를 풀게 되었습니다. 저번에 풀면서 느꼈지만 DP는 아직 DFS나 BFS만큼 이해가 너무 안되어 있는 거 같아 한동안 지속해서 관련 문제를 풀 필요성을 느끼게 되었습니다. 해당 문제는 카드 팩의 가격이 주어졌을 때, N개의 카드를 구매하기 위해 민규가 지불해야 하는 금액의 최댓값을 구하는 프로그램으로 DP에 어떤 값을 누적시킬 건지 중요한 문제인 것 같습니다. 처음에 고민했던 방향은 1. dp 의 i 번째마다 비교하여 i 장 카드 최댓값 넣기 2. dp 의 i 번째마다 비교하여 n 장 카드 최댓값 넣기 였는데 아무래도 dp 값을 활용하는 특징상 후자는 아닌 것 같아 전자로 잡고 문제를 풀게 되었습니다. 아쉽게도 아직 .. 2023. 4. 12.
[유니티 게임 개발] 2D 추리 게임 "RUNA" 게임 개요 : 소녀가 악몽에서 탈출하는 2D 추리 탈출 게임 장르 : 추리, 퍼즐, 스토리 게임 제작 목적 : 이때까지 게임 제작을 할 때 무작정 구현하는 경우가 많았는데 이번에야 말로 포토폴리오 용으로 깔끔한 코드와 객체지향프로그래밍을 제대로 해보겠다는 마음으로 구현하게 되었습니다. 팀 : 총 3명 (개발자 2명, 디자이너 1명) 만들면서 고려한 점 : 1. 광고 달아서 꼭 출시해보겠다. 2. 싱글톤, 객체지향 프로그래밍적인 코드를 짜겠다. (대사창, 물건 습득, 정답 체크 기능) 3. 최대한 간결한 코드와 활용성 높은 코드를 짜겠다. 4. 기존에 안해본 기능을 제작해보겠다. (추리게임) 5. 다른 사람과의 협업을 전제로 변수 이름, 주석 등 알아보기 쉽게 코드를 짜겠다. 역할 : 1. 전반적인 게임 .. 2023. 4. 12.
[알고리즘/백준] 2294번 동전2 Python 파이썬 이번 문제는 DP 문제로 이해하는데 좀 걸린 문제입니다. 아직 제대로 DP에 대해 알고 응용할 수 있는 정도까지는 아닌 것 같습니다. 다른 분의 풀이를 보면서 이해하는데 시간을 들었습니다. 동전의 종류와 특정 값이 주어지면 특정 값을 맞추기 위한 최소 동전 갯수를 구하는 문제입니다. 처음에 보았을 때 DP 문제인건 감을 잡았는데 어떻게 풀어나가야할지 값이 안 잡히더라고요 일단 DP 문제인 만큼 어떤 값을 누적시켜서 사용할 거고 dp 배열이 k+1 원만큼 만들어지면서 각 i원에 어떤 것을 저장시키지 않을까 생각했습니다. 그 이후에는 막혀서 결국 풀이를 찾게 되었습니다. 핵심은 "dp[i]에 dp[n-c1], dp[n-c2], dp[n-c3] 중에 가장 개수가 적은 경우를 택하고 +1" 한 값을 누적해주는 .. 2023. 4. 10.
(주) 더블미 메타버스 서포터즈 활동 중간 후기 안녕하세요 오늘은 현재 제가 서포터즈 활동하고 있는 프로그램에 대해 소개하고 어떤 프로그램을 진행했는지 중간 후기를 남기고자 합니다. 평소에 게임과 메타버스, 가상현실에 관심이 많았던 만큼 관련 활동을 찾아보다가 아래와 같은 서포터즈 모집 공고를 보고 지원하게 되었습니다. 간단한 소개와 지원동기를 적어서 지원했고 본인 SNS 주소를 첨부해서 지원했는데 운이 좋게도 합격하여 지금까지 활동하게 되었습니다. 아무래도 블로그 활동이 합격하는데 큰 영향을 주지 않았을까 합니다. 달 2회 총 6회 가까이 만나서 트윈월드에 대한 교육이랑 팀별 프로젝트를 진행한다고 1주차에 안내받았고 현재 3주차 활동 마무리 딱 반 정도 활동을 진행했습니다. 1주차에 각자 팀을 짜주셨는데 저는 그중에서 D팀이었으며 팀 이름은 더블어스.. 2023. 4. 10.
반응형