분류 전체보기 67

[c++] 조합, 순열, 중복조합, 중복순열 (DFS)

정보 출처https://yabmoons.tistory.com/99조합int arr[5];bool selected[5];void dfs(int idx, int cnt) { if(cnt == 3) { for(int i=0; i순열int arr[5];bool selected[5];vector v;void dfs(int cnt) { if(cnt == 3) { // 3개를 뽑는다면 for(int i=0; i중복조합int arr[5];int selected[5];void dfs(int idx, int cnt) { if(cnt == 3) { for(int i=0; i중복순열int arr[5];int selected[5];void dfs(int cnt) { if(cnt == 3) { for(in..

코딩테스트 2024.08.16

[c++] 백준 - 20168_골목 대장 호석 - 기능성

https://www.acmicpc.net/problem/20168 풀이그냥 일반 다익스트라를 적용하면, 아래와같이 최단경로 안에서 가장 비용이 큰 간선을 구하게 된다void bfs(int x, int money) { fill(dist, dist+11, INF); fill(maxMoney, maxMoney+11, 0); priority_queue, vector >, greater> q; q.emplace(0, x); dist[x] = 0; while(!q.empty()) { int dx = q.top().second; int distSum = q.top().first; q.pop(); if(dist[dx] money) c..

코딩테스트 2024.08.15

[c++] 백준 - 17396_백도어

https://www.acmicpc.net/problem/17396풀이기본적인 다익스트라에서 시야에 관련한 조건을 추가했다.하지만 이것만으론 시간초과를 넘어갈 수 없었다if(dist[x] 또한 조건의 수가 굉장히 크므로, INF 값을 충분히 크게 해주고, 자료형을 long long으로 처리했다.2, 3번째 줄 덕분에 굉장히 많은 오답과 시간초과를 마주했다;;전체 코드#include #include #include #include using namespace std;typedef long long ll;const ll INF = 1e18;ll n, m;vector > v[100001];vector vision(100001);ll dist[100001];void bfs(ll a) { fill(dist,..

코딩테스트 2024.08.15

[c++] 백준 - 5972번_택배 배송

https://www.acmicpc.net/problem/5972풀이기본적인 다익스트라를 적용하면 바로 풀리는 문제이다.따로 조건이 없기 때문에 1에서 n까지 가는 최단경로를 구하면 된다.#include #include #include #include using namespace std;const int INF = 98765432;vector > v[50001];int dist[50001];void bfs(int a) { fill(dist, dist + 50001, INF); priority_queue, vector>, greater> q; q.emplace(0, a); dist[a] = 0; while(!q.empty()) { int x = q.top().seco..

코딩테스트 2024.08.15

[c++] 프로그래머스 - n진수 게임

https://school.programmers.co.kr/learn/courses/30/lessons/17687풀이우선 10진수를 모든 진법으로 바꿔주는 함수를 작성했다.string converter(int num, int base) { string result = ""; string digits = "0123456789ABCDEF"; if (num == 0) return "0"; while (num > 0) { result = digits[num % base] + result; num /= base; } return result;}16진법까지이므로, digits는 F까지만 작성했다. 진법이 늘어나면 뒤로 더 추가하면 된다.전체 코드#includ..

코딩테스트 2024.08.15

[c++] 프로그래머스 - 프렌즈4블록

https://school.programmers.co.kr/learn/courses/30/lessons/17679[프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/17679)풀이블록 퍼즐 게임 문제이다생각보다 특별한 알고리즘이 필요하진 않았다문제에서 요구한 대로 구현하다보면 정답이 나온다주의할점이 경우처럼 2x2블록이 겹쳐있는 경우 바로 삭제를 해버리면, 오른쪽 밑의 세 블록은 사라지지 않는 판정이 되므로 주의한다.풀이int dx[3] = {1, 0, 1}..

코딩테스트 2024.08.15

[Unity] 유니티에서 Json을 사용하는 방법

정보 출처: https://www.youtube.com/watch?v=-Myy_fRljo0기본 정보1. 제이슨을 언제 쓰는가? ->  저장, 통신, 기타 등등2. 유니티에서 어떻게 쓰는가? -> 유니티에서 지원하는 기능이 있음클래스(코드) -> Json(택배)Json(택배) -> 조립도 -> 클래스(코드)실습using System.Collections;using System.Collections.Generic;using UnityEngine;// 1. 데이터(코드 = 클래스)를 만들어야 함 => 저장할 데이터 생성// 2. 그 데이터를 Json으로 변환// =============================================// 3. Json을 다시 코드로class Data { // 1..

Unity 2024.07.11

[Unity][2D] 타일에서 셀 단위 이동하기

타일 셀 단위 이동바람의 나라나, 포켓몬처럼 버튼을 잠깐 클릭만 해도, 셀에서 한 칸만큼 움직이고 싶을 때가 있다.우선 방향을 담을 Enum을 준비한다.public enum MoveDir{ None, Up, Down, Left, Right,}Update에서 세 가지 함수를 호출해보자.입력에 따라 방향을 설정해주는 함수반드시 한 칸을 움직이게 하는 함수셀 기준 좌표를 움직이게 하는 함수 기본 셋팅public class PlayerController : MonoBehaviour{ public Grid _grid; public float _speed = 5.0f; Vector3Int _cellPos = Vector3Int.zero; // 자신의 셀 위치 bool..

Unity 2024.06.26

[SQL] 수치와 문자열

출력만이 아니라 연산을 하기한국나이를 검색하고 싶다면?기본적인 사칙연산은 모두 지원된다(연산 순서 일반 프로그래밍 언어와 동일) 현재 연도에서 출생 연도를 빼보자SELECT nameFirst, 2024 - birthYear AS koreanAgeFROM playersWHERE deathYear IS NULL AND birthYear IS NOT NULL AND (2024 - birthYear) 소숫점까지 나오는 나눗셈을 하고싶다면, float형으로 만들어 줘야 함SELECT 3.0 / 2ROUND - 소숫점 반올림ROUND(숫자, 자릿수) 로 하면 반올림하여 출력할 수 있다.SELECT ROUND(3.141592, 3)문자열 출력그냥 문자열은 '문자열' 의 형식으로 사용한다.하지만 한글을 쓰고 싶다면 N..

MS SQL 2024.06.24