본문 바로가기

분류 전체보기

(56)
[백준] 1987번 알파벳 [C++] https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 접근 방식 백 트래킹을 이용해서 문제를 해결하였다. 먼저 특정 알파벳이 포함 되었는지, 안 되었는지 구분할 bool형 배열을 만들어준다. (1,1)지점은 무조건 지나가게 되므로 (1,1)지점에 있던 알파벳은 지나갔다고 표시를 해주고, (1,1) 지점부터 4 방향으로 탐색을 해준다. 탐색이 가능한 조건(배열 내에 해당, 이미 지나가지 않은 알파벳)을 만날 경우에 다시 그 지점으로부터 탐색을 ..
[백준] 13549번 숨바꼭질3 [C++] https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 접근 방식 0초의 시간을 사용하는 순간이동이 있기때문에, BFS보다 다익스트라가 적합한 문제이다. 출발점에서 부터 +1,-1,*2씩 해서 큐에 넣어주는데, *2를 하는 순간이동은 시간이 걸리지 않기 때문에 순간이동부터 연산을 진행시켜주면 된다. 시간 순서적으로 방문하기 때문에 이미 방문한 지점은 더 탐색할 필요가 없다. 코드 #include #include #in..
[백준] 2931번 가스관 [C++] https://www.acmicpc.net/problem/2931 2931번: 가스관 www.acmicpc.net 접근 방식 일단 모스크바에서 부터 가스관의 방향을 따라서 BFS를 통해서 탐색을 해준다. 탐색을 하다보면, 이어져 있지만 빈칸으로 뚫려있는 곳이 있게 되는데, 이 위치를 저장하고 어느 방향으로 탐색을 했는지도 저장해준다. 다시 자그레브에서 같은 방법으로 탐색을 해준다. 같은 지점에서 뚫려있게 되는데 여기서도 어느 방향으로 탐색했는지 저장해준다. 예를 들어 이러한 형태로 입력이 주어졌다고 가정해보자. 모스크바에서는 아래로 탐색을 하다보니 아래 방향이 비어있는 공간이 발견된다. 자그레브에서 가스관을 따라 탐색을 하다보니 오른쪽이 비어있는 공간이 발견될 것이다. 그렇다면, 비어있는 곳에 있어야 할..
[유니티]Firebase Database를 이용해서 유저들이 가입한 후 채팅하는 어플 만들기 회원가입과 로그인에 더 자세한 정보는 https://sharp2studio.tistory.com/36?category=884092 [유니티] Firebase Database를 이용한 회원가입, 로그인 구현 기본적인 세팅은 https://sharp2studio.tistory.com/32 이 글을 참고하면 된다. 왼쪽 빌드에서 Authentication에 들어가서 로그인 방법을 설정해준다. 여러개가 있지만, 가장 간단한 이메일로 구현을 해보겠다. sharp2studio.tistory.com 이 포스팅에 정리했다. 회원가입을 도와줄 SignUp 씬과, 로그인을 도와줄 SignIn 씬, 마지막으로 채팅창을 구현한 Main 씬 이렇게 3가지 씬을 만들것이다. Project에서 우클릭 후 create-scene 기..
[유니티]TextmeshPro 사용 시 한글이 깨질 때 유니티 기본 제공인 text보다, textmesh pro가 성능과 기능면에서 좋다. 따라서, 나는 개발할때 대부분 textmesh pro를 사용하는데, 처음 사용 시 내가 받아온 폰트에서 한글이 입력 안 되는 경우가 있을것이다. 유니티 왼쪽 상단의 Window > TextMeshPro > Import TMP Essential Resources클릭시 설치가 된다. 설치 후에 다시 왼쪽 상단의 Window > TextMeshPro > Font Asset Creator를 눌러주면 위와 같은 창이 뜰 것이다. 건드려야 할 것은 먼저 Source Font File에 내가 구해온 폰트파일을 넣어준다. 또한 Atalas Resolutuon은 폰트 해상도인데, 4096x4096으로 맞춰준다. Character Set은..
[유니티] Firebase Database를 이용한 회원가입, 로그인 구현 기본적인 세팅은 https://sharp2studio.tistory.com/32 이 글을 참고하면 된다. 왼쪽 빌드에서 Authentication에 들어가서 로그인 방법을 설정해준다. 여러개가 있지만, 가장 간단한 이메일로 구현을 해보겠다. 이메일/비밀번호 사용만 설정해주고 저장을 해준다. 앞서 다운 받았던 sdk중에서 Auth를 import해준다. (자신의 유니티 버전이 Unity 5.x버전이면 dotnet 3, Unity.2017 이상이면 dotnet 4 폴더) 이제, 회원가입을 위해서 이메일과 패스워드를 입력받는 화면을 만들어준다. Input Field를 통해 입력창 두개와, Button을 통해 입력 시 누를 버튼을 만들어준다. 이 때, 패스워드 Input field의 Content type을 pa..
[유니티] Firebase Database에 저장된 값 정렬하기 , 문제 해결 계속해서 firebase database를 이용했을 시, 데이터를 정렬하는 법에 대해 알아보겠다. firebase database에 정렬할 때 사용하는 함수는 3개가 존재하는데, 그 중 가장 많이 사용되는 것은 OrderByChild()이다. 예를 들어서, 내가 구축한 db의 현재 상황이다. 이를 평범하게 점수만 읽어오면 {40,15,35}라는 값을 받아 올 것이다. 이 때, firebase에서 제공하는 OrderByChild함수를 사용할 경우에는 점수에 따라서 오름차순으로 정렬된 값을 바로 받아올 수 있다. void ReadData() { FirebaseDatabase.DefaultInstance.GetReference("rank").OrderByChild("score") .GetValueAsync()..
[유니티] Firebase Database 실시간 데이터 변화 감지하는 함수 만들기 using System.Collections; using System.Collections.Generic; using UnityEngine; using Firebase; using Firebase.Database; using Firebase.Extensions; public class MakeHintManager : MonoBehaviour { DatabaseReference dataReference; void Start() { dataReference = FirebaseDatabase.DefaultInstance.RootReference; dataReference.ValueChanged += ValueChanged; } void ValueChanged(object data,ValueChangedEven..